2013-06-10 13 views
9
  • Mam virtualenv z pip wewnątrz.
  • Mam swój własny indeks paczek.
  • Chcę dodać ten pakiet do pip, aby uniknąć wywoływania pip install some_package -i my_index cały czas
  • Chcę dodać ten indeks tylko do tego konkretnego wystąpienia pip działającego w virtualenv.

W takim przypadku, który plik należy zmodyfikować i jak?Jak dodać własny indeks do pip działającego w virtualenv?

Odpowiedz

4

Nigdy nie próbowałem używać własnego indeksu, ale po niektórych badaniach this article powinien opisać, co chcesz zrobić.

Zasadniczo należy dodać następujące wpisy do ~/.pip/pip.conf (w systemach Windows, znajdujących się %HOME%\pip\pip.ini):

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

Problemem jest to, że trzeba będzie globalną definicję dla wszystkich projektów, a to, co chcesz definicja dla wszystkich użytkowników w danym projekcie. Od pip documentation można zmieniać odnośnika plik konfiguracyjny za pomocą var środowiskową PIP_CONFIG_FILE

Można edytować skrypt virtual-env-folder/bin/activate włączenie tego środowiska var, ale problemem jest to, że tworzenie nowego wirtualnego środowiska stracą tę zmianę i nie byłoby możliwe zautomatyzować. Co można zrobić, jest utworzenie pliku w katalogu głównym projektu .pip/pip.conf i tworzenie prostych activate-virtual-env skrypt również w katalogu głównym projektu z następujących czynności:

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

i poinstruować użytkowników, aby pozyskać tego pliku zamiast virtual-env-folder/bin/activate

+0

Nie ma '~' w virtualenv. – mnowotka

+0

Edytowałem mój post z możliwym rozwiązaniem, aby uczynić go opartym na projekcie zamiast globalnym na użytkowniku opartym na użytkowniku. –

7

biegnę do tego samego problemu i stwierdzili, że wsparcie to pip w aktualnej wersji de facto https://pip.pypa.io/en/latest/user_guide.html#config-file

Wewnątrz virtualenv:

Na Unix i Mac OS X pliku jest $ VIRTUAL_ENV/pip.conf
W systemie Windows plik jest:% VIRTUAL_ENV% \ pip.ini

+0

To rozwiązanie działa na moim Macu, ale nie działa na RHLE 6. Ktoś jeszcze to działa w VE na Linuksie? – steve

+0

To rozwiązanie (umieszczenie pliku pip.conf w katalogu głównym mojego virtualenv) zadziałało dla mnie na Centos 7 z pytonem 2.7.5 – Sinsanator

+0

@steve Działa dla mnie na ubuntu 16.04. Być może wersja Pythona/virtualenv na RHLE jest zbyt stara? – NeilenMarais