我可以让额外的包目录对 AWS-EB Python 应用程序部署过程可见吗?
Can I make an additional packages directory visible to the AWS-EB Python app deployment process?
在 AWS Elastic Beanstalk 上,我在不属于标准 Python 包路径的目录中有一些 Python packages installed(对于 2.6.x 或 2. 7.x Elastic Beanstalk 环境使用的版本)。因此,这些包在安装 requirements.txt
中列出的包时(默认情况下)对 AWS-EB 部署过程不可见,这可能导致安装冗余包,通常以(非常)长的时间为代价部署时间。
有没有办法让我的包的安装目录对部署过程可见?
从概念上讲,因为(我假设)requirements.txt
处理发生在我的应用程序的虚拟环境中(是吗?)I could
echo 'export PYTHONPATH="/anaconda/lib/python2.7/site-packages"' >> /opt/python/run/venv/bin/activate
在处理 requirements.txt
之前的某个阶段并且(对于 tidiness)
sed -i '/^export PYTHONPATH/d' /opt/python/run/venv/bin/activate
当它停用时。但我不清楚这是否会在部署的正确时间点发生。而且无论如何,由于权限问题,它不起作用(当我 eb ssh
并且作为 container_commands
这些无效时,我被拒绝了)。也许像这样的事情是在正确的道路上;有什么地方可以 "hook" 类似的命令吗? (无论如何,它大致说明了我正在尝试做的事情。)
确保 Anaconda 在部署过程的早期和所有用户的 Python 模块搜索路径上的最简单方法是将 .pth
文件添加到系统站点包目录中一个 .ebextensions
文件:
files:
"/opt/python/run/venv/lib/python2.7/site-packages/anaconda.pth":
mode: "000644"
owner: root
group: root
content: |
/anaconda/lib/python2.7/site-packages
将 Anaconda 放在系统站点包目录中文件之后的额外好处(PYTHONPATH
会把它们放在前面)。
在 AWS Elastic Beanstalk 上,我在不属于标准 Python 包路径的目录中有一些 Python packages installed(对于 2.6.x 或 2. 7.x Elastic Beanstalk 环境使用的版本)。因此,这些包在安装 requirements.txt
中列出的包时(默认情况下)对 AWS-EB 部署过程不可见,这可能导致安装冗余包,通常以(非常)长的时间为代价部署时间。
有没有办法让我的包的安装目录对部署过程可见?
从概念上讲,因为(我假设)requirements.txt
处理发生在我的应用程序的虚拟环境中(是吗?)I could
echo 'export PYTHONPATH="/anaconda/lib/python2.7/site-packages"' >> /opt/python/run/venv/bin/activate
在处理 requirements.txt
之前的某个阶段并且(对于 tidiness)
sed -i '/^export PYTHONPATH/d' /opt/python/run/venv/bin/activate
当它停用时。但我不清楚这是否会在部署的正确时间点发生。而且无论如何,由于权限问题,它不起作用(当我 eb ssh
并且作为 container_commands
这些无效时,我被拒绝了)。也许像这样的事情是在正确的道路上;有什么地方可以 "hook" 类似的命令吗? (无论如何,它大致说明了我正在尝试做的事情。)
确保 Anaconda 在部署过程的早期和所有用户的 Python 模块搜索路径上的最简单方法是将 .pth
文件添加到系统站点包目录中一个 .ebextensions
文件:
files:
"/opt/python/run/venv/lib/python2.7/site-packages/anaconda.pth":
mode: "000644"
owner: root
group: root
content: |
/anaconda/lib/python2.7/site-packages
将 Anaconda 放在系统站点包目录中文件之后的额外好处(PYTHONPATH
会把它们放在前面)。