当前位置: 首页 > 面试题库 >

可能存在冲突的python安装

司空瑾瑜
2023-03-14
问题内容

我不确定默认的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字节vs. 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安装到dist-packages目录中,/usr/lib/python2.7/dist- packages该目录与我得到的相对应python --version。但是,当我尝试which python获取目录python而不是python2.7我时,这一事实使我担心,当我尝试安装使用python和numpy作为依赖项的程序时,这可能会发生冲突。

因此,我想澄清一下我的问题:这些常规文件是为python安装找到的,还是我以某种方式安装了三个不同的版本?它们会因无法识别的符号引起我的错误吗?如果确实是无关版本,是否可以卸载?

感谢您的任何帮助,您可以提供!

哦,这是我先前遇到的问题的链接PYTHONPATH,如果有可能会影响到事情,我在尝试修复我遇到的ImportError时在哪里进行了编辑。ImportError:没有名为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...

问题答案:

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

/ usr / local / bin是安装自定义Python的位置,您应该尝试使用/ usr / bin / python来运行。

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

virtualenv myproject
cd myproject
source bin/activate
pip install numpy

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

请注意,每次打开新的外壳程序并要使用该虚拟环境时,都必须重复“
source”命令。另外,您可能必须使用操作系统软件包管理器来安装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的符号链接。



 类似资料:
  • 我添加到我的实体中 @version@temporal(temporaltype.timestamp) @column(name=“version”) 专用日期版本; 错误: 原因:org.hibernate.exception.ConstraintViolationException:无法执行语句(...) org.hibernate.exception.internal.standardsql

  • 我负责新项目Symfony 4.4 symfony new_项目——版本=4.4 然后呢 作曲家需要索纳塔项目/管理包 并得到错误 这里生成composer.json 什么版本兼容?我应该更改哪个供应商来安装sonata管理员?

  • 我有fedora 19,并默认安装了JDK版本1.7,但用于web开发的ADT Eclipse出现了问题,它只接受版本 Java版本"1.7.0_45"Java(TM)SE运行时环境(构建1.7.0_45-b18)JavaHotSpot(TM)64位服务器VM(构建24.45-b08,混合模式) 毕竟,安装还是未安装?删除了java 1.7还是n?如何解决这个问题,并且只有我从oracle网站下载

  • 当我尝试在EclipseHelios上安装插件时,它会告诉我 有解决办法吗?

  • 小雪再 pull 的时候遇到了冲突。 → git pull --rebase remote: Counting objects: 3, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0 Unpacking objects

  • 问题内容: 如果我正在使用Long uuid = UUID.randomUUID().getMostSignificantBits()发生冲突可的可能性。它会切掉最低有效位,所以有可能发生冲突可,对吗? 问题答案: 根据文档,静态方法生成类型4 UUID。 这意味着六位用于某种类型信息,其余的122位是随机分配的。 分布了六个非随机位,其中UUID的最高有效一半分配了四个,而最低有效一半分配了两个