我不知道这里可能出现什么问题:
我有一些来自Biopython的模块,我可以在使用交互式提示或通过命令行执行python脚本时轻松导入。
问题是,当我尝试在web可执行的cgi脚本中导入相同的biopython模块时,我得到一个“导入错误”
:没有名为Bio的模块
这里有什么想法?
这里有几种可能性:
sys.version
和sys.prefix
的小脚本,并通过apache和命令行比较结果,以确保在两种环境中都运行相同的python安装。import site
吗?当您通过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脚本的当前用户或用户。玩的很开心 ;)