I've created an environment and added a package django-paramfield via git:
$ pip install git+https://bitbucket.org/DataGreed/django-paramfield.git
Downloading/unpacking git+https://bitbucket.org/DataGreed/django-paramfield.git
Cloning https://bitbucket.org/DataGreed/django-paramfield.git to /var/folders/9Z/9ZQZ1Q3WGMOW+JguzcBKNU+++TI/-Tmp-/pip-49Eokm-build
Unpacking objects: 100% (29/29), done.
Running setup.py egg_info for package from git+https://bitbucket.org/DataGreed/django-paramfield.git
Installing collected packages: paramfield
Running setup.py install for paramfield
Successfully installed paramfield
Cleaning up...
But when i want to create a requirements file, i see only the package name:
$ pip freeze
paramfield==0.1
wsgiref==0.1.2
How can I make it output the whole string git+https://bitbucket.org/DataGreed/django-paramfield.git
instead of just a package name? The package isn't in PyPi.
UPD: perhaps, it has to do something with setup.py? Should I change it somehow to reflect repo url?
UPD2: I found quite a similar question in stackoverflow, but the author was not sure how did he manage to resolve an issue and the accepted answer doesn't give a good hint unfortunately, though judging from the author's commentary it has something to do with the setup.py file.
UPD3: I've tried to pass download_url
in setup.py and installing package via pip with this url, but he problem persists.
This is an old question but I have just worked through this same issue and the resolution Simply add the path to the repo (git in my case) to the requirements fie instead of the package name
i.e.
Worked like a charm deplying on heroku
A simple but working workaround would be to install the package with the
-e
flag likepip install -e git+https://bitbucket.org/DataGreed/django-paramfield.git#egg=django-paramfield
.Then
pip freeze
shows the full source path of the package. It's not the best way it should be fixed in pip but it's working. The trade off-e
(editing flag) is that pip clones the git/hg repo into/path/to/venv/src/packagename
and runpython setup.py deploy
instead of clone it into a temp dir and runpython setup.py install
and remove the temp dir after the setup of the package.Here's a script that will do that: