2016-02-24 23 views
7

Pracuję nad projektem, który został napisany w Pythonie 2, i aktualizuję go do Pythona 3. Do tej pory właśnie znajdowałem drobne błędy składni, które można łatwo naprawić. To, co zrobiłem, to nowy projekt w Pythonie 3, zapewnił, że zadziałało i kopiuje fragmenty kodu ze starego projektu do nowego.Dlaczego nie można znaleźć PYSVN?

W tej chwili mam problemy z pysvn. Początkowo był otrzymuję ten błąd:

ImportError: No module named 'pysvn'

W tym momencie, próbowałem za pomocą pip install pysvn, który nie działa. Mam następujące:

pip install pysvn

Collecting pysvn

Could not find a version that satisfies the requirement pysvn (from versions:)

No matching distribution found for pysvn

Więc po trochę badań, poszedłem do pysvn download site i próbowałem:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn, który dał mi ten błąd:

Collecting pysvn

The repository located at pysvn.tigris.org is not a trusted or secure host and is being ignored. If this repository is available via HTTPS it is recommended to use HTTPS instead, otherwise you may silence this warning and allow it anyways with '--trusted-host pysvn.tigris.org'.

a także taki sam błąd, jak podczas próby >pip install pysvn.

Następnym krokiem było ręczne pobranie pliku .exe dla potrzebnej wersji i udało mi się pomyślnie zainstalować pysvn. Sprawdziłem w katalogu site-packages i pysvn jest rzeczywiście tam, ale pip wciąż nie może powiedzieć mi coś o nim:

>pip show pysvn 

> 

Kiedy to zrobić dla innego zainstalowanego modułu, selenu na przykład, Otrzymuję następujący:

pip show selenium


Metadata-Version: 1.1

Name: selenium

Version: 2.49.2

Summary: Python bindings for Selenium

Home-page: https://github.com/SeleniumHQ/selenium/

Author: UNKNOWN

Author-email: UNKNOWN

License: UNKNOWN

Location: ...\lib\site-packages

Requires:

byłem w stanie sprawdzić, czy instalacja pysvn powiodło się, ponieważ mój projekt prowadzi teraz zamiast dawać mi, że ImportError.

Dlaczego więc pip nie może podać mi informacji o innym module w tym samym katalogu, który został pomyślnie zainstalowany ?

+0

Pierwszym krokiem jest upewnienie się, że pysvn znajduje się tam, gdzie myślisz, wykonując coś takiego: '>>> import pysv >>> import inspect >>> inspect.getfile (pysvn)' – Igor

+0

Zgodnie z tym, co mi dało, jest dokładnie tam, gdzie go znalazłem po zainstalowaniu (w 'lib \ site-packages \ pysvn'). – DJGrandpaJ

+0

Spróbuj uruchomić 'python -m pip list'. Czy pojawia się na liście zainstalowanych pakietów? – Igor

Odpowiedz

6

Jak się okazało, ponieważ nie użyłem pip install dla pysvn, pip nie wiedział, że istnieje pysvn. Ponieważ nie był dostępny od PyPI (the Python Package Index), nie było możliwości, aby pip mógł go zobaczyć (ponieważ tam właśnie znajduje się pip, aby znaleźć pakiety, które chce zainstalować).

Z pip user guide:

pip supports installing from PyPI, version control, local projects, and directly from distribution files.

odkąd ostatecznie pobrane pysvn z its own download site (co nie było żadnego z powyższych opcji 4) i prowadził .exe ręcznie, pip po prostu nie wie o tym mimo że znajduje się w tym samym katalogu, co inne pakiety zainstalowane przez pip.

Przypuszczam, że mogłem również pobrać pliki dystrybucyjne i użyłem z nimi pip, ale moje obejście się udało.

+0

Ah dobrze wiedzieć. Dzięki za kontynuację. – Igor

+0

PyPI nie zezwala na więcej niż 1 plik binarny dla wersji Pythona. Pysvn obsługuje jedną binarną dla każdej wersji SVN. Co oznacza, że ​​PyPI nie jest wystarczająco potężny, aby obsługiwać rozszerzenia takie jak pysvn. Jest to znany problem z PyPI. –

+0

W systemach Linux zazwyczaj wystarczy zainstalować pakiet Debian/Fedora. Sytuacja Maca i Windowsa jest znacznie bardziej złożona. Nie jest łatwo po prostu zbudować pysvn. Musisz zbudować SVN i jego zależności. Znowu to znacznie wykracza poza to, z czym PyPi może się komunikować. –

Powiązane problemy