我不知道这里可能是什么问题:
我有一些来自 Biopython 的模块,我可以在使用交互式提示符或通过命令行执行 python 脚本时轻松导入这些模块。
问题是,当我尝试在 web 可执行 cgi 脚本中导入相同的 biopython 模块时,我收到“导入错误”
: 没有名为 Bio 的模块
这里有什么想法吗?
我不知道这里可能是什么问题:
我有一些来自 Biopython 的模块,我可以在使用交互式提示符或通过命令行执行 python 脚本时轻松导入这些模块。
问题是,当我尝试在 web 可执行 cgi 脚本中导入相同的 biopython 模块时,我收到“导入错误”
: 没有名为 Bio 的模块
这里有什么想法吗?
以下是几种可能性:
sys.version
and的小脚本,sys.prefix
并通过 apache 和命令行比较结果,以确保您在两个环境中从相同的 python 安装运行。import site
在尝试导入 Biopython 之前尝试做吗?当您通过 apache 运行时,可能有什么东西阻止了站点包的导入。在 cgi 脚本中,您可以尝试在任何导入之前添加此包的路径。
sys.path.insert(0, 'path to biopython package')
如果您使用的是 Apache,您应该能够使用指令 SetEnv 在 conf 文件中设置 PYTHONPATH
SetEnv PYTHONPATH "path to biopython package"
我有同样的问题。我通过在终端中通过命令更改 Linux Ubuntu 中的 Apache 用户解决了这个问题:
sudo gedit /etc/apache2/envvars
请更改www-data
为您当前export APACHE_RUN_USER
的export APACHE_RUN_GROUP
用户或可以运行 python 脚本的用户。
玩的很开心 ;)