可能的python安装冲突

2024-05-20 09:38:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我不确定默认的python安装是否是我一直在安装模块的安装,也不确定这是否是Unicode字节大小兼容性错误冲突的原因。简而言之,我已经使用Python 2.7.3安装了Numpy 1.7,当我试图安装另一个使用Python和Numpy作为依赖项的程序时,我得到以下错误:

Traceback (most recent call last):
  File "setup.py", line 20, in <module>
    from weblogolib import __version__
  File "/home/chris/Documents/IS/Bioinformatics-Software/weblogo-3.3/weblogolib/__init__.py", line 108, in <module>
    from numpy import array, asarray, float64, ones, zeros, int32,all,any, shape
  File "/usr/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
import add_newdocs
  File "/usr/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
  File "/usr/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
from type_check import *
  File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
import numpy.core.numeric as _nx
  File "/usr/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
import multiarray
ImportError: /usr/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString

所以我想我有一个冲突的unicode字节大小(2字节对4字节)。我去检查一下,看看是否有相互冲突的Python版本,可能会把事情搞砸。

python --version
Python 2.7.3

但这似乎与

which python
/usr/local/bin/python

当我转到/usr/local/bin时,我发现这些文件(与python相关):

python
python2
python2.7
python-config
python2-config
python2.7-config

现在我已经将numpy安装到了/usr/lib/python2.7/dist-packages的dist packages目录中,该目录对应于我为python --version获得的内容。但是,当我尝试which python并为python而不是python2.7获取目录时,我担心当我尝试安装使用python和numpy作为依赖项的程序时,这可能会发生冲突。

所以我想澄清一下我的问题:这些是python安装所需的普通文件,还是以某种方式安装了三个不同的版本?他们会导致我的错误与无法识别的符号?如果它们确实是无关版本,是否有卸载的方法?

谢谢你的帮助!

哦,这里有一个链接指向我之前的一个问题,我在那里编辑了PYTHONPATH,同时试图修复我得到的一个重要错误,如果这可能会影响到一些事情的话….ImportError: No module named numpy

以下是尝试virtualenv的结果:

chris@ubuntu:~/Documents/IS/Bioinformatics-Software$ virtualenv weblogo-3.3
New python executable in weblogo-3.3/bin/python
Installing setuptools.............done.
Installing pip...............done.
chris@ubuntu:~/Documents/IS/Bioinformatics-Software$ cd weblogo-3.3
chris@ubuntu:~/Documents/IS/Bioinformatics-Software/weblogo-3.3$ source bin/activate
(weblogo-3.3)chris@ubuntu:~/Documents/IS/Bioinformatics-Software/weblogo-3.3$ pip install numpy
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/lib/python2.7/dist-packages
Cleaning up...

Tags: inpyimportnumpyislibpackagesusr
2条回答

你在开什么操作系统?这对超级用户来说更像是个问题,但可以试试这样的方法。抛弃easy_install,如果还没有使用pip

在Ubuntu上:

sudo apt-get install python-setuptools 
sudo easy_install pip 
pip install --user numpy

问题似乎确实是Python和Numpy编译设置不匹配。

/usr/local/bin是安装自定义Python的地方,您应该尝试使用/usr/bin/Python运行。

另一个解决方案是使用virtualenv。试试这个:

virtualenv myproject
cd myproject
source bin/activate
pip install numpy

基本上,virtualenv使用自己的包在“myproject”目录中设置了不同的Python安装。运行“activate”命令会告诉系统要使用此安装而不是默认系统。这使您可以为不同的项目使用不同的Python环境。使用virtualenv,每个项目都可以有自己的Python包版本,即使它们与其他项目或系统包不兼容。

注意,每次打开新的shell并希望使用该虚拟环境时,都必须重复“source”命令。另外,您可能需要使用OS包管理器安装virtualenv命令。如果这是不可能的(例如,您没有根访问权限),或者由于某种原因您的操作系统版本太旧,您也可以从https://pypi.python.org/packages/source/v/virtualenv/手动下载它

如果执行ls-l/usr/local/bin/python*操作,应该会看到python和python2实际上是python2.7的符号链接,python config和python2 config也是python2.7-config的符号链接。

相关问题 更多 >