Python包导入失败
我有一个trac的安装,它在命令行下运行得很好。我把trac.cgi文件放到了正确的目录,但当我打开网页时,却出现了:
Trac detected an internal error: No module named pkg_resources
Traceback (most recent call last):
File "/some/path/htdocs/trac.cgi", line 22, in ?
import pkg_resources
ImportError: No module named pkg_resources
pkg_resources
这个模块已经安装了。我在命令行运行python时可以正常导入它。权限也没问题(我可以读取site-packages/pkg_resources.py
这个文件)。sys.path也设置正确(包含了site-packages目录)。这个文件的开头是:
try:
import os
import pkg_resources
所以在出错之前,路径没有被修改。
有没有其他情况会导致导入失败呢?
2 个回答
1
在你的文件夹里添加一个叫__init__.py的文件,前提是你已经有了pkg_resources.py这个模块。这样就可以正常使用了。
0
最后我找到了答案。这个脚本是在一个集群上运行的,因为我使用的是虚拟环境的Python安装,所以一些符号链接在其他节点上无法找到。只有我测试的那台机器上是可以的。
在一个由虚拟环境创建的文件夹里安装setuptools(也就是在一个所有服务器都能共享的目录里)解决了这个问题。