Python模块导入错误(在Linux正常但在FreeBSD失败)
我们有一个应用程序,目前在Linux系统上运行。现在我正在尝试把它移植到FreeBSD上。我们是通过twistd来运行这个应用程序。
/usr/bin/twistd -y $TACFILE --rundir $RUNDIR --logfile=/dev/null --pidfile=$PIDFILE
我的tac文件是一个Python文件,开头是这些内容:
#!/opt/python/bin/python
import os
from twisted.application import internet, service
from twisted.internet import reactor
from twisted.enterprise import adbapi
from twisted.plugin import getPlugins
from twisted.python import log
import labris.flyng.iflyng as iflyng
import labris.flyng.config as config
import labris.flyng.plugins as pplugins
import labris.flyng.protocols as flyng_protocols
但是在这一行我遇到了一个错误:
import labris.flyng.iflyng as iflyng
错误信息是:
exceptions.ImportError: No module named labris.flyng.iflyng
Failed to load application: No module named labris.flyng.iflyng
你可以理解,twisted的导入没有问题,而labris的导入却失败了。这个应用程序在Linux上运行得很好,没有任何错误。
如果这有关系的话,/opt/python/bin/python
是一个符号链接,指向/usr/local/bin/python2.6
。
twisted和labris这两个目录都在路径/usr/local/lib/python2.6/site-packages
下。它们的权限设置是正确的,而且每个目录的权限都是一样的。
运行ls /usr/local/lib/python2.6/site-packages/labris/flyng
的输出是:__init__.py config.py db iflyng.py parsers plugins protocols.py
。所以我认为模块的路径没有问题。我不知道这个错误的原因是什么。任何线索或建议都非常欢迎。
1 个回答
0
你可以试着从一个简单的Python脚本中导入这个模块,看看它是否安装在正确的位置。