Biopython Entrez想要在Django app

时间:2015-06-09 11:07:27

标签: django apache biopython

我在Django应用程序中有一些代码可以执行以下操作,以获取DOI的Pubmed文章:

def getPubmedByDOI(request,doi):
    Entrez.email = 'me@mydomain.com'
    handle = Entrez.esearch(db="pubmed", term=doi)
    record = Entrez.read(handle)
    return getPubmedArticle(request,record["IdList"][0]) // renders the article

这很好用,但有一点 - Entrez.esearch调用坚持访问服务器上的/root/.config,特别是写入以下空目录:

/root/.config/biopython/Bio/Entrez/DTDs/

它是Gentoo上的Apache,运行方式如下:

User django
Group apache

应用程序的所有代码都在~django /中,所以我希望任何写入都在~django / .config而不是/root/.config中。我可以通过更改/ root上的权限来解决这个问题,但更好的解决方案是配置Biopython或Apache以便不写入/ root。有没有人对如何做到这一点有任何建议?

1 个答案:

答案 0 :(得分:1)

上游记录为https://github.com/biopython/biopython/issues/918,建议设置:

>>> from Bio.Entrez.Parser import DataHandler
>>> DataHandler.global_dtd_dir
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Bio/Entrez/DTDs'
>>> DataHandler.local_dtd_dir = '...'