Installing private Python packages

Once you have signed up for a Gemfury account and uploaded a few packages, you can install them via command-line, or with requirements.txt.

Your secret Repository URL

The secret repository URL is the PyPI endpoint for your Gemfury account and packages. Do not share this URL to keep your account private.

Your PyPI URL has the following format:

https://pypi.fury.io/TOKEN/USERNAME/

You can find your Repo URL via the dashboard following these steps.

Building and uploading packages

After using one of many guides on the web about creating a Python package, you can now upload it to Gemfury. Use the ”+Upload” button in the dashboard or the following command:

$ curl -F package=@pkg-0.0.1.tgz https://TOKEN@push.fury.io/USERNAME/

Uploading packages can also be done using distutils commands. You’ll first need to add Gemfury to your ~/.pypirc:

# ~/.pypirc
[distutils]
index-servers =
    pypi
    fury

[pypi] # https://www.python.org/pypi
username:
password:

[fury]
repository: https://pypi.fury.io/username/
username: SeCrEt-ToKeN
password:

You can then use the following command to build and upload your package:

python setup.py sdist upload -r fury

You can additionally use --show-response flag to see more upload details.

Install modules via command-line

Once you have your Repository URL, you can install packages via the following command:

pip install py-sample --extra-index-url <Repo-URL>

We use --extra-index-url to allow pip to keep the original Index URL. This allows pip to implicitly install public packages that your private package may depend on.

Install modules via requirements.txt

Add the --extra-index-url option at the top of your requirements.txt:

--extra-index-url <Repo-URL>
my-pkg=0.0.1
...

Test it out by running:

pip install -r ./requirements.txt