Background
I have two python projects. Project A and Project B.
Each project has its own virtual environment and its own setup.py.
Both projects are not pure py files and has "build" process like building extensions, generate source etc.
A is dependent on B (setup.py install_requires points on B).
Each project is built and published/distributed as a wheel to pypi on-premise repository.
pip install w/wo -e (development mode) of project A, nicely installs project B into project A venv site-packages.
So far everything is working nicely and "by the book".
Now, my story get complicated ...
I would like to develop the two projects together without having to publish B in order A to consume it.
As example, I would like to:
I actually want the pip install -e of project A to install project B in development mode too.
After some reading I understood (hopefully correctly) that one can define a "distribution" as a local source folder by --find-links flag.
I defined project B root folder in --find-links.
I tried it with (on project A setup.py folder):
pip install . -e --find-links = file:///path/to/B
pip install . -e --find-links = git+file://path/to/B
Both did not work.
BTW, Puting in the path to B wheel or egg of B,
ex: pip install . -e --find-links = file:///path/to/B.whl
did work but this is not what I am looking for.
Hope you are still with me :-) (sorry for the tedious story)
What am I missing?
Tx
It needs to work out the dependencies of the requested packages, the dependencies of those dependencies, and so on. Over the course of the dependency resolution process, pip will need to download distribution files of the packages which are used to get the dependencies of a package.
When you run pip as a module, Python loads the module in memory and allows the package to be removed while it is being used. You can run packages as if they were scripts if the package provides a top-level script __main__.py.
You can change the logical operator to >= to tell pip to install an exact or greater version that has been published. When you set a new environment using the requirments.txt file, pip looks for the latest version that satisfies the requirement and installs it.
The Python Development Mode can only be enabled at the Python startup. Its value can be read from sys.flags.dev_mode. Changed in version 3.8: The io.IOBase destructor now logs close () exceptions.
Let me try and restate the problem:
I apologize if I'm missing something here, but why not simply install both packages in the same virtual environment, which will make this problem go away?
I.e. after creating your environment, you install package B in editable mode, followed by installing package A. Any changes in B will be picked up by A, no changes needed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With