为什么不能找到pysvn?

时间:2016-02-24 18:07:05

标签: windows python-3.x pip pysvn

我正在开发一个用Python 2编写的项目,并且我将它升级到Python 3.到目前为止,我一直在寻找可以轻松修复的轻微语法错误。我所做的是在Python 3中创建了一个新项目,确保它有效,并将旧项目中的代码块复制到新项目中。

现在,我在使用pysvn时遇到了麻烦。最初,我收到了这个错误:

  

ImportError:没有名为' pysvn'

的模块

此时,我尝试使用pip install pysvn,但这并不起作用。我得到了以下内容:

  

pip install pysvn

     

收集pysvn

     

找不到满足pysvn要求的版本(来自版本:)

     

找不到匹配的pysvn分发

然后经过一些研究,我去了pysvn download site并尝试了:

>pip install --index-url http://pysvn.tigris.org/project_downloads.html pysvn,它给了我这个错误:

  

收集pysvn

     

位于pysvn.tigris.org的存储库不是受信任或安全的主机,而是被忽略。如果此存储库可通过HTTPS使用,则建议使用HTTPS,否则您可以将此警告静音并随后允许使用' - trusted-host pysvn.tigris.org'。

也与我尝试>pip install pysvn时的错误相同。

我的下一步是手动下载我需要的版本的.exe文件,我能够成功安装pysvn。我已经检查了site-packages目录,并且pysvn 确实存在,但是pip仍然无法告诉我任何相关内容:

>pip show pysvn

>

当我为另一个已安装的模块,例如selenium执行此操作时,我得到以下内容:

  

pip show selenium

           

元数据 - 版本:1.1

     

名称:selenium

     

版本:2.49.2

     

摘要:Selenium的Python绑定

     

主页:https://github.com/SeleniumHQ/selenium/

     

作者:UNKNOWN

     

作者电子邮件:UNKNOWN

     

许可证:UNKNOWN

     

位置:... \ lib \ site-packages

     

需要:

我能够验证pysvn的安装是否成功,因为我的项目现在运行而不是给我ImportError。

那么为什么pip不能为我提供成功安装的同一目录中的另一个模块的信息

3 个答案:

答案 0 :(得分:7)

事实证明,因为我没有将pip install用于pysvn,所以pip并不知道pysvn存在。因为PyPI (the Python Package Index)无法使用它,pip无法看到它(因为pip首先找到它正在尝试安装的软件包。)

来自pip user guide

  

pip支持从PyPI,版本控制,本地项目以及直接从分发文件安装。

由于我最终从its own download site下载pysvn(这不是上述4个选项中的任何一个)并手动运行.exe,pip根本就不知道它strong>即使它与由pip 安装的其他软件包位于同一目录中。

我想我也可以检索分发文件并使用pip,但我的解决方法可以解决这个问题。

答案 1 :(得分:0)

我在linux上的方式:

here获取信息

tar -zxf pysvn-1.9.10.tar.gz
apt-get install subversion libsvn1 libsvn-dev make g++
cd pysvn-1.9.10/Source
python setup.py configure --pycxx-dir=/pysvn-1.9.10/Import/pycxx-7.1.3/
make

这里我有以下错误:

Compile: /pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxsupport.cxx into cxxsupport.o
/pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxsupport.cxx:42:10: fatal error: Src/Python3/cxxsupport.cxx: No such file or directory
#include "Src/Python3/cxxsupport.cxx"

Compile: /pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxextensions.c into cxxextensions.o
/pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxextensions.c:42:10: fatal error: Src/Python3/cxxextensions.c: No such file or directory
#include "Src/Python3/cxxextensions.c"

需要编辑以下文件: vi /pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxsupport.cxx

change #include "Src/Python3/cxxsupport.cxx" to
#include "Python3/cxxsupport.cxx"

,并且在第二个文件上相同。超过make

make clean && make
...
Compile: /code/pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxxextensions.c into cxxextensions.o
Compile: /code/pysvn-1.9.10/Import/pycxx-7.1.3/Src/IndirectPythonInterface.cxx into IndirectPythonInterface.o
Compile: /code/pysvn-1.9.10/Import/pycxx-7.1.3/Src/cxx_exceptions.cxx into cxx_exceptions.o
Link pysvn/_pysvn_3_7.so

然后将其复制到站点软件包(更改为您的目录):

mkdir /usr/local/lib/python3.7/site-packages/pysvn
cp /code/pysvn-1.9.10/Sources/pysvn/__init__.py /usr/local/lib/python3.7/site-packages/
cp /code/pysvn-1.9.10/Sources/pysvn/_pysvn*.so /usr/local/lib/python3.7/site-packages/

答案 2 :(得分:0)

对于Ubuntu

Python 2

sudo apt install python-svn 

Python 3

sudo apt install python3-svn