python - Errno 13 Django 对我不想使用的目录的权限被拒绝

标签 python django apache python-3.x biopython

我的生产服务器上的 Django 应用程序中出现此错误:

[Errno 13] Permission denied: '/var/www/.config'

我从未要求访问代码中这个不存在的文件或目录。服务器正在我的 httpd.conf 中定义的不同目录中运行,并且我没有在 Django 设置中定义任何 /var/www/ 元素的使用。

就我而言,我将 biopython 库与 Django 一起使用:

from Bio import Entrez

Entrez.email = "my@email"

handle = Entrez.efetch("taxonomy", id="123, 1")
records = Entrez.parse(handle)

此代码在服务器上的 python 控制台中运行。但指令 Entrez.parse(handle) 在 Django 环境中返回错误。

我没有看到任何指令要求在函数的源代码中编写或打开任何内容,因此这似乎是 Django 的问题?

是配置问题吗?当我调用特定函数时,后台 Django 函数试图访问文件?

我的配置:

  • Python 3.3
  • Django 1.8
  • Biopython 1.67

最佳答案

事实上,Entrez.parse正在调用DataHandler对象。该对象尝试在用户目录中写入以下内容:

home = os.path.expanduser('~')
directory = os.path.join(home, '.config', 'biopython')
local_xsd_dir = os.path.join(directory, 'Bio', 'Entrez', 'XSDs')
os.makedirs(local_xsd_dir)

因为biopython用户是httpd用户,所以主目录是/var/www/

这里的解决方案是允许 apache 写入 /var/www 或将其移动到其他位置。

关于python - Errno 13 Django 对我不想使用的目录的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147935/

相关文章:

php - Mac 10.6.8 上的默认 Apache、PHP 和 MySql

php - 将Google Analytics(分析)标签插入任意页面的最简单方法?

python - Ansible:委托(delegate)给时更改python解释器

django - 如何创建适用于 gmail、yahoo、outlook 和其他客户端的通用 ics 文件,同时从编程应用程序发送?

python - 如何在列的两个给定值之间选择数据框?

jquery - 如何从视频中提取帧并将其保存到内存中?

python - 使用 Apache 设置 Django 时出现数据库错误 - DatabaseError : DPI-1047

apache - 如何在 apache httpd.conf 中添加注释而不是完整的行?

python - 使用 pandas 的字符串列表交叉引用多列的有效方法

python - Pandas - 'dataframe'对象没有属性 'str'