2016-02-24 40 views
7

Я работаю над проектом, который был написан на Python 2, и я обновляю его до Python 3. До сих пор я только что обнаружил незначительные синтаксические ошибки, которые легко устранить. Я создал новый проект на Python 3, обеспечил его работу и копировал фрагменты кода из старого проекта в новый.Почему не удается найти pysvn?

Прямо сейчас, у меня проблемы с pysvn. Изначально, я получаю эту ошибку:

ImportError: No module named 'pysvn'

На данный момент, я попытался с помощью pip install pysvn, который не работал. Я получил следующее:

pip install pysvn

Collecting pysvn

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

No matching distribution found for pysvn

Итак, после небольшого исследования, я пошел в pysvn download site и попробовал:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn, который дал мне эту ошибку:

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'.

, а также та же ошибка, что и при попытке >pip install pysvn.

Следующим шагом было вручную загрузить файл .exe для нужной мне версии, и я смог успешно установить pysvn. Я проверил каталог сайтов-пакеты, и pysvn действительно есть, но пип до сих пор не может сказать мне ничего об этом:

>pip show pysvn 

> 

Когда я делаю это для другого установленного модуля, а также селен, например, я получит следующее:

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:

Я был в состоянии проверить, что установка pysvn была успешной, потому что мой проект теперь работает вместо того, чтобы дать мне, что ImportError.

Так почему же pip не дает мне информацию для другого модуля в том же каталоге, что был успешно установлен?

+0

Первый шаг - убедиться, что pysvn находится там, где вы думаете, выполнив что-то вроде этого: '>>> import pysv >>> import inspect >>> inspect.getfile (pysvn)' – Igor

+0

Согласно тому, что мне дано, именно там я нашел его после его установки (в 'lib \ site-packages \ pysvn'). – DJGrandpaJ

+0

Попробуйте запустить 'python -m pip list'. Он отображается в списке установленных пакетов? – Igor

ответ

6

Как оказалось, потому что я не использовал pip install для pysvn, pip не знал, что существует pysvn. Поскольку он не был доступен с PyPI (the Python Package Index), не было никакого способа, чтобы это могло видеть pip (потому что именно здесь pip идет первым, чтобы найти пакеты, которые он пытается установить).

От pip user guide:

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

Так как я в конце концов, скачал pysvn из its own download site (который не был какой-либо из перечисленных выше 4 варианта) и побежал .exe вручную, pip просто не знает об этом даже если он находится в том же каталоге, что и другие пакеты, установленные на пике.

Я полагаю, что я мог бы также получить файлы дистрибутива и использовать pip с теми, но мой обходной путь сделал трюк.

+0

О, хорошо знать. Спасибо за продолжение. – Igor

+0

PyPI не допускает более 1 бинарного файла для версии python. Pysvn поддерживает один двоичный файл для каждой версии SVN. Все это означает, что PyPI недостаточно эффективен для поддержки расширений, таких как pysvn. Это известная проблема с PyPI. –

+0

В системах Linux вы можете просто установить пакет Debian/Fedora. Ситуация с Mac и Windows намного сложнее. Его не просто построить pysvn. Вы должны построить SVN и его зависимости. Снова это далеко за пределами того, с чем PyPi может помочь. –