2016-02-24 13 views
7

Ich arbeite an einem Projekt, das in Python 2 geschrieben wurde, und ich aktualisiere es auf Python 3. Bis jetzt habe ich nur kleinere Syntaxfehler gefunden, die leicht zu reparieren sind. Was ich getan habe, ist ein neues Projekt in Python 3 erstellt, sichergestellt, dass es funktioniert, und Kopien von Code aus dem alten Projekt in das neue Projekt kopiert.Warum kann pip nicht finden pysvn?

Im Moment habe ich Probleme mit Pysvn. Am Anfang war ich diesen Fehler:

ImportError: No module named 'pysvn'

An dieser Stelle habe ich versucht pip install pysvn mit, was nicht funktioniert hat. Ich habe die folgenden:

pip install pysvn

Collecting pysvn

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

No matching distribution found for pysvn

Also dann nach ein wenig Forschung, ich zum pysvn ging download site und versuchte:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn, die mir diesen Fehler gab:

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

und auch der gleiche Fehler wie bei dem Versuch >pip install pysvn.

Mein nächster Schritt war manuell die EXE-Datei für die Version herunterzuladen, die ich benötigte, und ich konnte pysvn erfolgreich installieren. Ich habe das Website-Pakete Verzeichnis überprüft, und pysvn ist in der Tat dort, aber Pip kann noch nicht sagen, mir etwas davon:

>pip show pysvn 

> 

Wenn ich dies für ein anderes Modul installiert, Selen zum Beispiel I folgendes erhalten:

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:

ich in der Lage war, um sicherzustellen, dass die Installation von pysvn erfolgreich war, weil mein Projekt läuft jetzt anstatt mir zu geben, dass Import.

Warum kann pip keine Informationen für ein anderes Modul im selben Verzeichnis geben, das erfolgreich installiert wurde?

+0

Der erste Schritt ist sicherzustellen, dass pysvn ist wo Sie denken, indem Sie so etwas tun: >>> import pysv >>> import inspect >>> inspect.getfile (pysvn) ' – Igor

+0

Nach was das gab mir, Es ist genau dort, wo ich es nach der Installation gefunden habe (in 'lib \ site-packages \ pysvn'). – DJGrandpaJ

+0

Versuchen Sie 'python -m pip list' auszuführen. Erscheint es in der Liste der installierten Pakete? – Igor

Antwort

6

Wie sich herausstellt, weil ich pip install für pysvn nicht verwendet habe, wusste pip nicht, dass pysvn existierte. Da es von PyPI (the Python Package Index) nicht verfügbar war, gab es keine Möglichkeit, dass pip es sehen konnte (weil das ist, wo pip zuerst Pakete findet, die es versucht zu installieren).

Vom pip user guide:

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

Da ich schließlich pysvn von its own download site heruntergeladen hatte (was nicht eine der oben genannten vier Optionen war) und lief manuell die EXE-Datei, pip einfach nicht weiß, darüber obwohl es sich im selben Verzeichnis befindet wie andere Pakete, die von pip installiert wurden.

Ich nehme an, ich könnte auch die Distributionsdateien abgerufen und pip mit denen verwendet haben, aber meine Workaround hat den Trick gemacht.

+0

Ah gut zu wissen. Danke für das Follow-up. – Igor

+0

PyPI erlaubt nicht mehr als 1 Binärdatei für eine Version von Python. Pysvn unterstützt eine Binärdatei für jede SVN-Version. Das bedeutet, dass PyPI nicht leistungsstark genug ist, um Erweiterungen wie pysvn zu unterstützen. Es ist ein bekanntes Problem mit PyPI. –

+0

Auf Linux-Systemen können Sie normalerweise nur das Debian/Fedora-Paket installieren. Die Mac- und Windows-Situation ist viel komplexer. Es ist nicht einfach, pysvn zu bauen. Sie müssen SVN und seine Abhängigkeiten erstellen. Dies ist weit mehr als das, mit dem PyPi helfen kann. –

Verwandte Themen