在错误的目录中嵌入了Python搜索模块

2024-09-27 00:11:40 发布

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

我已经在一台机器的$HOME/local中安装了python2.6.7,它已经在/usr中有一个默认的Python(我在这台机器上没有管理员权限)。默认的Python是用32位编译的,我的本地安装是64位的。由于一些未知的原因,我的本地Python库(我称之为C程序中的嵌入式Python解释器)搜索默认(错误)安装中的模块。在

这是“随机导入”的结果

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    import random
  File "/tmp/work/mdorier1/local/lib/python2.6/random.py", line 45, in <module>
    from math import log as _log, exp as _exp, pi as _pi, e as _e, ceil as _ceil
ImportError: /usr/lib/python2.6/lib-dynload/math.so: wrong ELF class: ELFCLASS32

如您所见,import语句正确搜索“随机.py“在Python的本地安装中,但是import语句在随机.py去寻找数学。所以在错误的位置,由于默认位置有32位模块,因此以错误结束。在

我猜环境变量有问题,我试过了

^{pr2}$

为了得到

['/tmp/work/mdorier1/local/lib/python26.zip', 
'/tmp/work/mdorier1/local/lib/python2.6', 
'/tmp/work/mdorier1/local/lib/python2.6/plat-linux2', 
'/tmp/work/mdorier1/local/lib/python2.6/lib-tk', 
'/tmp/work/mdorier1/local/lib/python2.6/lib-old', 
'/usr/lib/python2.6/lib-dynload', 
'/tmp/work/mdorier1/local/lib/python2.6/site-packages']

我注意到其中一个路径确实指向Python的默认安装。因此,我的问题是: -为什么这个路径出现在这里,因为本地安装与默认安装无关? -我如何改变它(以一种干净和永久的方式)?此路径应该是本地安装中lib dynload的路径。在

谢谢


Tags: 模块pyimport路径机器libusrlocal
1条回答
网友
1楼 · 发布于 2024-09-27 00:11:40

在系统Python之前的PATH变量中可能没有Python的bin目录。在

或者您只是简单地错误地编译了Python而没有使用:

./configure  prefix=/tmp/work/mdorier1/local

所以现在它认为它的文件在别的地方。在

相关问题 更多 >

    热门问题