gpt4 book ai didi

python - 如何在主管中激活python虚拟环境?

转载 作者:行者123 更新时间:2023-11-28 19:28:52 26 4
gpt4 key购买 nike

我想做什么?

激活tensorflow_p36环境并运行python wsgi.py

我的 supervisord.conf 文件是什么样的?

[program:my_program]
command = /home/ec2-user/anaconda3/envs/tensorflow_p36/bin/python /home/ec2-user/abc/wsgi.py
directory= /home/ec2-user/abc/
environment=PATH= "/home/ec2-user/anaconda3/envs/tensorflow_p36/bin"
user= ec2-user
redirect_stderr = True
stdout_logfile = /home/ec2-user/abc/logs/gunicorn/gunicorn_stdout.log
stderr_logfile = /home/ec2-user/abc/logs/gunicorn/gunicorn_stderr.log

该文件位于默认的/etc/supervisord.conf 位置。

到目前为止我尝试了什么?

我尝试了 this question 中的所有解决方案,但是安装在该虚拟环境中的模块没有被导入。例如,我在导入 tensorflow、flask 等时遇到错误。然而,当我在 source activate tensorflow_p36 之后在终端中执行相同的命令时,它工作得很好。

我还尝试对 this answer 中建议的多个程序进行分组,我在第一个程序中激活虚拟环境并在第二个程序中运行 python 命令并将它们组合在一起。没有用,仍然遇到相同的导入错误。

额外信息:

当我运行 sudo service supervisord restart 时,我收到以下消息:

停止监督:[确定]

启动 supervisord:/usr/local/lib/python2.7/site-packages/supervisor-3.3.4-py2.7.egg/supervisor/options.py:461: UserWarning: Supervisord 正在以 root 身份运行并且它正在默认位置(包括其当前工作目录)中搜索其配置文件;您可能希望指定一个“-c”参数来指定配置文件的绝对路径以提高安全性。 'Supervisord 以 root 用户身份运行并且正在搜索' [确定]

最佳答案

您的命令不会激活环境 - 它只是调用该文件夹中的 python。我将解释不同之处:

创建环境时,会在其中创建一个 python.exe 文件。调用该 python 文件将使用该 python 运行脚本 - 但在正常环境下。

另一方面,激活环境会更改 PATH 系统变量以指向该环境中的所有包。

总而言之 - 激活环境而不是仅仅使用来自该环境的 python 运行脚本应该可以解决您的问题。

编辑:尝试这样的事情:

[program:my_program]
command = source activate tensorflow_p36 && python /home/ec2-user/abc/wsgi.py
directory= /home/ec2-user/abc/
environment=PATH= "/home/ec2-user/anaconda3/envs/tensorflow_p36/bin"
user= ec2-user
redirect_stderr = True
stdout_logfile = /home/ec2-user/abc/logs/gunicorn/gunicorn_stdout.log
stderr_logfile = /home/ec2-user/abc/logs/gunicorn/gunicorn_stderr.log

关于python - 如何在主管中激活python虚拟环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49134833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com