首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么python在我从web运行CGI脚本时找不到一些模块呢?

为什么python在我从web运行CGI脚本时找不到一些模块呢?
EN

Stack Overflow用户
提问于 2010-09-24 02:42:13
回答 3查看 9.8K关注 0票数 9

我不知道这里会有什么问题:

我有一些来自Biopython的模块,在使用交互式提示符或通过命令行执行python脚本时,可以很容易地导入这些模块。

问题是,当我尝试在web可执行的cgi脚本中导入相同的biopython模块时,我会得到一个“导入错误”。

:没有名为Bio的模块

这里有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-24 03:39:03

以下是几种可能性:

  • Apache (在Unix上)通常以不同的用户和不同的环境从命令行运行到
  • 。尝试制作一个只输出sys.versionsys.prefix的小脚本,并通过apache和命令行对结果进行比较,以确保您在安装在主目录下的两个sys.version Biopython中运行相同的python安装,还是只对您的普通用户可读?同样,由于apache通常以不同用户的身份运行,所以您可能无法访问该位置,因此无法导入它。
  • 您可以尝试在导入Biopython之前执行import site吗?也许是因为在运行apache.

时阻止了站点包的导入。

票数 7
EN

Stack Overflow用户

发布于 2010-09-24 02:47:22

在cgi脚本中,您可以尝试在导入之前添加到此包的路径。

代码语言:javascript
运行
复制
sys.path.insert(0, 'path to biopython package')

如果您正在使用Apache,您应该能够使用指令SetEnv在conf文件中设置PYTHONPATH。

代码语言:javascript
运行
复制
SetEnv PYTHONPATH "path to biopython package"
票数 4
EN

Stack Overflow用户

发布于 2019-02-22 21:29:44

我也有同样的问题。通过在终端中命令更改Linux Ubuntu中Apache的用户,我解决了这个问题:

代码语言:javascript
运行
复制
sudo gedit /etc/apache2/envvars

请将www-data on export APACHE_RUN_USER export APACHE_RUN_GROUP 更改为可以运行python脚本的当前用户或用户。祝您玩得愉快;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3783887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档