活动的Django应用无法识别全局$ PATH

时间:2019-03-24 12:54:59

标签: django nginx gunicorn ubuntu-18.04

我已经用gunicorn和nginx在Ubuntu 18.04服务器上部署了Django项目(在Windows中编码)。在/ home / user / blast / bin /中有一个视图在命令行中调用外部软件包可执行文件。包的路径在.profile

中定义

export PATH="$PATH:/home/user/ncbi-blast-2.8.1+/bin"

在我的Django项目virtualenv中,在echo $ PATH中也可以看到包PATH。

  

/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin:/ usr / games:/ usr / local / games:/ snap / bin: /home/ka4an/ncbi-blast-2.8.1+/bin

我能够在main shell和django virtualenv中的some_script.py中运行可执行程序包,如下所示: subprocess.run("package_executable", shell=True, stdout=log_file, stderr=log_file) 它返回预期的输出。但是,当通过views.py在活动的Django应用中运行它时,它将返回未找到package_executable的信息。我发现在活动的Django应用程序中,我有不同的echo $ PATH输出,而没有到我的包的PATH:

  

/ usr / local / sbin:/ usr / local / bin:/ usr / sbin:/ usr / bin:/ sbin:/ bin

活动Django应用由同一root用户运行(who-返回同一用户)。我可以通过提供包可执行文件的完整路径来在活动的Django应用程序中运行我的包,但是我想知道为什么Django无法识别.profile中定义的$ PATH。

0 个答案:

没有答案