2017-01-08 15 views
6

Muszę pobrać repozytorium git python i zainstalować, ponieważ wersja pypi nie jest aktualizowana.python pip - instalacja z lokalnego katalogu

Normalnie bym to zrobić:

pip install mypackage 
pip install mypackage[redis] 

Teraz mam repo sklonowany w następującym folderze:

/opt/mypackage

Więc jak biegnę aby nie instalować poniżej używając wersji pypi, ale lokalnej?

pip --flag /opt/mypackage install mypackage 
pip --flag /opt/mypackage install mypackage[redis] 

Są flagi pip dostępne i nie widzę, w jaki sposób osiągnąć:

Commands: 
    install      Install packages. 
    uninstall     Uninstall packages. 
    freeze      Output installed packages in requirements format. 
    list      List installed packages. 
    show      Show information about installed packages. 
    search      Search PyPI for packages. 
    wheel      Build wheels from your requirements. 
    help      Show help for commands. 

General Options: 
    -h, --help     Show help. 
    --isolated     Run pip in an isolated mode, ignoring environment variables and user configuration. 
    -v, --verbose    Give more output. Option is additive, and can be used up to 3 times. 
    -V, --version    Show version and exit. 
    -q, --quiet     Give less output. 
    --log <path>    Path to a verbose appending log. 
    --proxy <proxy>    Specify a proxy in the form [user:[email protected]]proxy.server:port. 
    --retries <retries>   Maximum number of retries each connection should attempt (default 5 times). 
    --timeout <sec>    Set the socket timeout (default 15 seconds). 
    --exists-action <action> Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup. 
    --trusted-host <hostname> Mark this host as trusted, even though it does not have valid or any HTTPS. 
    --cert <path>    Path to alternate CA bundle. 
    --client-cert <path>  Path to SSL client certificate, a single file containing the private key and the certificate in PEM format. 
    --cache-dir <dir>   Store the cache data in <dir>. 
    --no-cache-dir    Disable the cache. 
    --disable-pip-version-check 
+0

Czy repo jest w publicznym Internecie (na przykład github)? – snakecharmerb

+0

Myślę, że szukasz flagi -E. 'pip install -e .' w katalogu pakietów powinno działać. – fabianegli

+0

Prosimy nie dodawać komentarza głosowania do swoich pytań. Możesz go dodać jako komentarz, jeśli naprawdę musisz, ale do czasu, kiedy zareagujesz, spadkowcy zwykle zniknęli i nie zobaczą twojej uwagi. Dodatkowo masz wysoki rang i na pewno nie musisz się martwić o -1. – halfer

Odpowiedz

8

Państwo szukali pomocy w instalacjach z pip. Można go znaleźć za pomocą następującego polecenia: pip install --help

Running pip install -e /path/to/package instaluje pakiet w taki sposób, że można zmodyfikować pakiet, a kiedy nowe wezwanie import wygląda na to, że będzie importować edytowanego kodu pakietu. Jest to również bardzo przydatne przy tworzeniu pakietów.

16

Wszystko, co musisz zrobić, to uruchomić

pip install /opt/mypackage 

i pip wyszuka /opt/mypackage dla setup.py, budować koło, a następnie zainstalować go.

Problem z użyciem -e flagę pip install jak sugeruje się w komentarzach i this answer jest to, że wymaga to, że oryginalny katalog źródło pobyt w miejscu tak długo, jak chcesz korzystać z modułu. To świetnie, jeśli jesteś programistą pracującym nad źródłem, ale jeśli próbujesz po prostu zainstalować pakiet, jest to zły wybór.

Alternatywnie, nie musisz nawet pobierać repozytorium z Github. pip supports instalowanie bezpośrednio z repozytorium git przy użyciu różnych protokołów, w tym HTTP, HTTPS i SSH, między innymi. Zobacz dokumentację, do której linkowałem, na przykład.

+0

Ale potrzebuję zainstalować opcjonalną zależność np. mypackage [redis] Jak to się odnosi? Istnieje około 15 opcjonalnych instalacji zależności, ale potrzebuję tylko 1. – Tampa

+1

@Tampa, o ile mogę powiedzieć, 'pip install/opt/mypackage [redis]' powinien działać. – MattDMo

+0

To zadziałało idealnie dla mnie :) – dspacejs

Powiązane problemy