Python包导入失败

0 投票
2 回答
1662 浏览
提问于 2025-04-15 15:22

我有一个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(也就是在一个所有服务器都能共享的目录里)解决了这个问题。

撰写回答