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://TOKEN:@pypi.fury.io/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
# https://www.python.org/pypi
[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 packages via Pipfile
Installing your packages with pipenv
, using a Pipfile
is now supported.
You may learn more about pipenv and how to use it, from the official website.
First, add your repository URL as a source in your Pipfile:
[[source]]
url = "https://pypi.fury.io/USERNAME/"
verify_ssl = true
name = "fury"
Then, add packages from your Gemfury account in the Pipfile as:
[packages]
<package_name> = "*"
Or, you may explicitly specify the index for each package as:
[packages]
<package_name> = { version = "*", index = "fury" }
And, afterwards, update your local environment:
pipenv install
Securely install private packages via Pipfile
If you want to install private packages using Pipfile, you may want to keep
your secret token outside your Pipfile
.
You may do so, using the following:
[[source]]
url = "https://${FURY_AUTH}:@pypi.fury.io/USERNAME/"
verify_ssl = true
name = "fury"
And then specify your secret token in the environment when invoking pipenv
.
$ env FURY_AUTH=TOKEN pipenv install
You may also persist the token in your shell session using:
$ export FURY_AUTH=TOKEN
$ pipenv install
Install packages 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 packages 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