我正在开发一个用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
不能为我提供成功安装的同一目录中的另一个模块的信息?
答案 0 :(得分:7)
事实证明,因为我没有将pip install
用于pysvn,所以pip并不知道pysvn存在。因为PyPI (the Python Package Index)无法使用它,pip
无法看到它(因为pip
首先找到它正在尝试安装的软件包。)
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)
sudo apt install python-svn
sudo apt install python3-svn