2013-06-10 3 views
9
  • Ich habe eine virtualenv mit Pip innen.
  • Ich habe meinen eigenen Paket-Index.
  • Ich möchte dieses Paket hinzufügen, um pip install some_package -i my_index die ganze Zeit
  • ich diesen Index in virtualenv läuft auf diese spezielle pip Instanz nur hinzufügen wollen zu vermeiden, pip aufrufen.

In diesem Fall, welche Datei soll ich ändern und wie?Wie fügt man einen eigenen Index zu pip running in virtualenv hinzu?

Antwort

4

Ich habe nie versucht, meinen eigenen Index zu verwenden, aber nach einiger Forschung sollte this article abdecken, was Sie tun möchten.

Grundsätzlich müssen Sie folgendes zu Ihrem ~/.pip/pip.conf hinzufügen (auf Windows-Systemen, bei %HOME%\pip\pip.ini befindet):

[global] 
index-url = http://my.pypi.index/comes/here 

Das Problem ist, dass Sie eine globale Definition für alle Ihre Projekte haben und was Sie wollen, ist eine Definition für alle Benutzer in einem bestimmten Projekt Von pip documentation können Sie die Konfigurationsdatei Lookup unter Verwendung der Umgebung var PIP_CONFIG_FILE

Sie könnten das virtual-env-folder/bin/activate Skript bearbeiten, um diese Umgebung var umfassen, aber das Problem ist, verändern, dass eine neue virtuelle Umgebung geschaffen würde diese Änderung verlieren und wäre nicht möglich, automatisieren. Was Sie tun können, ist die .pip/pip.conf Datei im Root Ihres Projekts zu schaffen und ein einfaches activate-virtual-env Skript auch auf die Wurzel des Projekts mit dem folgenden erstellen:

pushd $(dirname $0) 
export PIP_CONFIG_FILE="$(pwd)/.pip/pip.conf" 
source "$(pwd)/virtual-env-folder/bin/activate" 
popd 

und weisen Sie Ihre Benutzer diese Datei zu beziehen, anstatt virtual-env-folder/bin/activate

+0

Es gibt kein '~' in virtualenv. – mnowotka

+0

Ich habe meinen Post mit einer möglichen Lösung bearbeitet, um es projektbasiert statt global auf benutzerbasiert zu machen. –

7

ich laufe in das gleiche Problem, und fand, dass pip unterstützen diese in der aktuellen Version de facto https://pip.pypa.io/en/latest/user_guide.html#config-file

Innerhalb eines virtualenv:

Unter Unix und Mac OS X die Datei ist $ VIRTUAL_ENV/pip.conf
unter Windows die Datei:% VIRTUAL_ENV% \ pip.ini

+0

Diese Lösung funktioniert auf meinem Mac, funktioniert aber nicht auf RHLE 6. Wer kann das in einem VE auf Linux? – steve

+0

Diese Lösung (eine pip.conf in die Wurzel meines virtualenv setzen) funktionierte für mich auf Centos 7 mit Python 2.7.5 – Sinsanator

+0

@steve Works für mich auf Ubuntu 16.04. Vielleicht ist die Python/Virtualenv-Version auf RHLE zu alt? – NeilenMarais

Verwandte Themen