-
Notifications
You must be signed in to change notification settings - Fork 79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better packaging #93
Comments
I meant to say I'd be happy to implement either of the above if you could use the help |
The reason that A workaround is to specify a specific version requirement to
|
I've been considering changing the LabJackPython versioning to be PEP 440 compliant. Our next official release will likely stop using the date string for the version and change to a major.minor type format starting at 2.0. We will add a package for this on PyPI so it can be found/installed properly through pip. Regarding a wheel, I haven't used those and would need to look further into it. At minimum we can add a wheel with only the Python modules. Not sure with the drivers though. May need to keep the requirement of running the appropriate OS installer beforehand for the device drivers, then run the pip command for Python side installation. I've also considered making a labjack directory/package for LabJackPython for the 2.0 release for better organization. With the newer LJM Python interface we do this. I'm not exactly sure though when version 2.0 will be released. I plan on it including the Python 3 support (still WIP) and the full removal of skymote code. I haven't had much time to work on it lately since we (LabJack) have been focusing on a new DAQ product. |
Thanks for the info. Glad to hear these things (and py3 support) are all in the pipeline :-) If your driver installer is just placing a dll/dylib somewhere, which is being accessed by python/ctypes, then you can certainly just include the dll/dylib in the wheel with the python library. Really easy to do that - see an example here: You end up pushing to pypi one wheel for each distribution, which is a bit more annoying for you but advantages:
If the installer currently is doing additional things (e.g. registry hooks or path settings) then it will still be needed because Let me know if you'd like any help with it - I can provide pull requests to help things along if needed. :-) |
Thanks for providing this information. It doesn't sound like we can do a proper installation of our libraries (dll/dylib/so) with a wheel if it can only copy files. We need post-install script capabilities on Linux and Windows. Possibly on Mac too. |
Is there any follow-up on adding the package to pypi? There is already some version of LabJackPython but it's not the latest one (even though the version suggests it). |
That version on PyPI is the last "stable" release 5-26-2015 which only supported Python 2.5, 2.6 and 2.7. The versioning was changed to 1.201505 (1.yearmonth) so PyPi would accept it. The current code in this repository is in a beta state for Python 3 support. There hasn't been a stable release for GitHub and PyPI since 2015. There is no timeframe when we will continue development and testing for Python 3 again, but we do plan on it at some point. |
Thank you for the feedback. I hope you'll find time to continue development and testing for Python 3 (rather sooner then later). |
I have been publishing the module to pypi.org as sti-LabJackPython. |
@davelopez01 Is it be possible for you to push the latest version to pypi? I understand that not whole functionality was tested for Python 3 but having the support here in the repository and not pushing it to pypi only makes life harder when it comes to managing dependencies :/ |
Thanks for the nudge @machnic . As of today I updated LabJackPython to 2.0.0 with what we currently have in the GitHub repo. for an official release, and put it on PyPi: https://pypi.org/project/LabJackPython/ I mentioned in an earlier post considering moving to a labjack directory/package for the 2.0 release. I didn't end up doing that for backwards compatibility. |
Thank you @davelopez01. This will already simplify a lot working with LabJack using Python 3. Moving to a labjack directory/package still would be a nice feature though. It could be done even taking backward compatibility concerns into account. For the time being, the directory/package could simply coexist with the current modules (let's say until version 3.0.0), and imports in the current form could give a |
The packaging of labjackpython could be much improved by:
pip install labjack
Doing 1. doesn't have any downsides and would help people have access to your current work (at the moment they have to navigate to github to find the latest version rather than doing
pip install labjack
). It's possible the wheel(s) could include the driver too unless that needs to alter OSDoing 2. has the slight downside that people should import by doing
from labjack import u3
rather thanimport u3
. So it would break code very minimally, but the current way that labjack gets installed is pretty bad; it's like installing an application by just dumping all the files in the root of "Program Files" rather than in a folder for that app[background: I'm the creator of the PsychoPy package and we have lots of labjack users, but it's annoying for me supporting dependent hardware/libs when they each have a different install method]
The text was updated successfully, but these errors were encountered: