在AWS Elastic Beanstalk上,我在一个目录中有一些Python packages installed,该目录不是标准Python包路径的一部分(对于2.6.x版本或对于弹性Beanstalk环境使用的2.7.x版本)。因此,在安装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)
当它失效时。但我不清楚这是否会发生在正确的部署点上。无论如何,由于权限问题,它不起作用(当我eb ssh
时我被拒绝,作为container_commands
这些都没有效果)。也许类似这样的命令是正确的;有没有地方我可以"hook"类似的命令?(无论如何,它大致说明了我要做的事情。)
确保Anaconda在部署过程的早期就在Python模块搜索路径上并且对所有用户来说,最简单的方法是将
.pth
文件添加到.ebextensions
文件中的system site packages目录中:这样做的另一个好处是将Anaconda放在系统站点包目录中的文件之后(
PYTHONPATH
会将它们放在前面)。在相关问题 更多 >
编程相关推荐