2016-02-24 27 views
7

Sto lavorando a un progetto che è stato scritto in Python 2 e lo sto aggiornando a Python 3. Finora ho trovato errori di sintassi minori che sono facilmente risolvibili. Quello che ho fatto è stato creare un nuovo progetto in Python 3, assicurato che funzionasse e copia blocchi di codice dal vecchio progetto a quello nuovo.Perché pip non riesce a trovare pysvn?

In questo momento, ho problemi con pysvn. Inizialmente, mi è stato sempre questo errore:

ImportError: No module named 'pysvn'

A questo punto, ho provato ad utilizzare pip install pysvn, che non ha funzionato. Ho ottenuto il seguente:

pip install pysvn

Collecting pysvn

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

No matching distribution found for pysvn

Così, poi, dopo un po 'di ricerca, sono andato al pysvn download site e provato:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn, che mi ha dato questo errore:

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

e anche lo stesso errore di quando ho provato >pip install pysvn.

Il mio prossimo passo è stato scaricare manualmente il file .exe per la versione di cui avevo bisogno, e sono stato in grado di installare correttamente pysvn. Ho controllato la directory site-packages, e pysvn è in effetti ci, ma pip ancora non mi posso dire nulla al riguardo:

>pip show pysvn 

> 

Quando faccio questo per un altro modulo installato, il selenio per esempio, ho ottiene quanto segue:

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:

sono stato in grado di verificare che l'installazione di pysvn ha avuto successo perché il mio progetto ora gestisce invece di darmi quel ImportError.

Quindi perché pip non mi fornisce informazioni per un altro modulo nella stessa directory che è stato installato correttamente ?

+0

Il primo passo è assicurarsi che pysvn si trovi dove si pensa facendo qualcosa del genere: '>>> import pysv >>> import inspect >>> inspect.getfile (pysvn)' – Igor

+0

Secondo ciò che mi ha dato, è esattamente dove l'ho trovato dopo l'installazione (in 'lib \ site-packages \ pysvn'). – DJGrandpaJ

+0

Prova a eseguire 'python -m pip list'. Compare nell'elenco dei pacchetti installati? – Igor

risposta

6

Come risulta, perché non ho usato pip install per pysvn, pip non sapeva che esisteva pysvn. Poiché non era disponibile da PyPI (the Python Package Index), non era possibile che pip potesse vederlo (perché è lì che pip cerca prima di installare i pacchetti che sta tentando di installare).

Dal pip user guide:

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

Dato che avevo finalmente scaricato pysvn da its own download site (che non era una di queste 4 opzioni) e corse l'exe manualmente, pip semplicemente non sa su di esso anche se è nella stessa directory degli altri pacchetti installati da pip.

Suppongo che avrei potuto anche recuperare i file di distribuzione e utilizzare pip con quelli, ma la mia soluzione alternativa ha fatto il trucco.

+0

Ah, buono a sapersi. Grazie per il seguito. – Igor

+0

PyPI non consente più di 1 binario per una versione di python. Pysvn supporta un binario per ogni versione SVN. Il che significa che PyPI non è abbastanza potente da supportare estensioni come pysvn. È un problema noto con PyPI. –

+0

Sui sistemi Linux in genere è sufficiente installare il pacchetto Debian/Fedora. La situazione di Mac e Windows è molto più complessa. Non è facile creare solo pysvn. Devi costruire SVN e le sue dipendenze. Ancora una volta questo molto al di là di ciò che PyPi può aiutare. –

Problemi correlati