15

我正在开发一个用 Python 2 编写的项目,我正在将其升级到 Python 3。到目前为止,我只是发现了一些很容易修复的小语法错误。我所做的是在 Python 3 中创建了一个新项目,确保它可以正常工作,并将旧项目中的代码块复制到新项目中。

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

ImportError:没有名为“pysvn”的模块

在这一点上,我尝试使用pip install pysvn,但没有奏效。我得到以下信息:

点安装 pysvn

收集pysvn

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

找不到 pysvn 的匹配分布

于是,经过一番研究,我去了 pysvn下载站点并尝试了:

>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)执行此操作时,我得到以下信息:

点子显示硒


元数据版本:1.1

名称:硒

版本:2.49.2

摘要:Selenium 的 Python 绑定

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

作者:未知

作者邮箱:未知

执照:未知

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

要求:

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

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

4

3 回答 3

6

事实证明,因为我没有使用pip installpysvn,所以 pip 不知道 pysvn 的存在。因为它不能从PyPI(Python 包索引)获得,所以pip无法看到它(因为这pip是首先找到它试图安装的包的地方)。

pip 用户指南

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

由于我最终pysvn是从它自己的下载站点(不是上述 4 个选项中的任何一个)下载并手动运行 .exe ,因此即使它与 pip 安装的其他软件包位于同一目录中pip,也根本不知道它。

我想我也可以检索分发文件并pip与它们一起使用,但我的解决方法成功了。

于 2016-03-16T21:09:26.303 回答
1

我在Linux上的方式:

从这里获取资源

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/
于 2019-09-19T08:47:55.337 回答
0

对于 Ubuntu

蟒蛇2

sudo apt install python-svn 

蟒蛇 3

sudo apt install python3-svn
于 2019-10-24T18:42:33.387 回答