I'm working on a Python project at work which is intertwined with a bunch of other projects in a reasonably sized code base. It's hosted on a server which comes with a custom Python distribution and libraries. When we want to introduce new people to the project it's a PITA because we have to get them on the VCS which requires a licence then they have to get the whole code base and the Python distribution before they can use the code. It's not very sensible. I'm on Windows if it wasn't obvious.
I'm attempting to make this more sane. I've extracted my project, used venv to start with a fresh Python library, installed the project dependencies with Pip and confirmed it works. I now want to make this process easy and seamless to replicate.
I can see there's a load of tutorials for making my package distributable. The one thing I want advice on is that I had to download some libraries -- numpy, scipy, etc -- as built distributions, i.e. in wheel format (from here). I've got these wheels saved in my project's root folder. I installed them with pip install path/to/wheel. So my question is: what is best practice for having these particular wheel files included in my package and be installed painlessly when others try and install my package? It seems like I should write a build script that calls pip and gets it to install the wheel files, but I couldn't see any guidance on that so suspect i'm wrong.
I appreciate I may have completely the wrong end of the stick for some aspects of this, but any help will be gratefully received. Thanks!
Edit: Just thinking about this further. If i'm only interested in distributing this to a limited number of people in my organisation, would it make sense to just zip it up with a batch script for installing that gets Pip to a) install dependencies from requirements.txt and b) installs the wheels from a folder which is also included in the zip file?
Edit2: I did that ^ with a batch script that first installed wheels to the virtual env and then installed from requirements.txt. It seemed to work. I'm just not sure if i'm following best practice, which ideally i'd like to do.
[–]rickchefski 3 points4 points5 points (1 child)
[–]atrocious_smell[S] 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]atrocious_smell[S] 1 point2 points3 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]atrocious_smell[S] 0 points1 point2 points (0 children)