主pipe和gunicorn我有一个非常奇怪的问题。 我阅读主pipe文档 ,所有相关的博客文章, stackexchange 问题,但他们都没有解决我的奇怪的问题,我甚至不知道在哪里看得更远。
我的主pipeconfiguration:
[program:djangoapp] user = regularuser directory = /path/to/djangoapp command = /path/to/djangoapp/.venv/bin/gunicorn --debug --log-file - --log-level debug --name arlista --workers 9 --pythonpath /path/to/necessary/library/source/Python djangoapp.wsgi:application stdout_logfile = /path/to/logfolder/djangoapp.log autorestart = true redirect_stderr = true environment = GPG_PASSPHRASE="a_passhprase_with_a_comma_in_it", DJANGO_SETTINGS_MODULE="myapp.settings.production", DJANGO_SECRET_KEY="secret_key_working_fine", DJANGO_DB_ENGINE="django.db.backends.mysql", DJANGO_DB_HOST="localhost", DJANGO_DB_NAME="dbname", DJANGO_DB_USER="dbuser", DJANGO_DB_PASSWORD="dbpassword", DJANGO_MEDIA_ROOT="/path/to/djangoapp/media", DJANGO_STATIC_ROOT="/path/to/djangoapp/static_root", # a couple more environment variables here for Django
一切似乎都很好。 它可以连接到数据库,我可以看到djangoapp.log , myapp.settings.production文件的pyc被生成,因此设置被加载。 DJANGO_MEDIA_ROOT工作正常,因为图像来自该文件夹(如果我删除该设置,Django甚至不启动)。
但是 ,当encryption的图像在飞行中解密(这就是为什么GPG_PASSHPRASE是必要的),那些给我空白图像(图像长度为零,所以Django的工作,但解密不)。 解密由/usr/bin/gpg 。 处理解密的函数位于/path/to/necessary/library/source/Python中的一个包中。 regularuser用户可以从该文件夹读取软件包。
如果我用暴发户运行这个进程,使用env节点传递相同的环境variables,甚至从文件中读取它们,一切都很好,图像被解密了,但是没有pipe理员。
我尝试了单引号的环境variables,没有引用,将PYTHONPATH传递给gunicorn --pythonpath或环境选项,仍然没有运气。 我能做什么? GPG_PASSHPRASE是否包含逗号可能是一个问题? (我不能改变这个)还有什么? 我真的用完了想法。
我可能不能帮忙,但我会抛出一些可能性(这可能是完全错误的)
djangoapp... ”)之前没有空格。 可能你的构build链中的某个步骤将它与以前的--pythonpath标志连接--pythonpath ,并且两者都被忽略。