我可以让AWSEB Python应用程序部署过程看到附加的包目录吗?

2024-06-02 08:12:31 发布

您现在位置:Python中文网/ 问答频道 /正文

在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

^{pr2}$

当它失效时。但我不清楚这是否会发生在正确的部署点上。无论如何,由于权限问题,它不起作用(当我eb ssh时我被拒绝,作为container_commands这些都没有效果)。也许类似这样的命令是正确的;有没有地方我可以"hook"类似的命令?(无论如何,它大致说明了我要做的事情。)


Tags: installed命令路径版本目录txtaws标准
1条回答
网友
1楼 · 发布于 2024-06-02 08:12:31

确保Anaconda在部署过程的早期就在Python模块搜索路径上并且对所有用户来说,最简单的方法是将.pth文件添加到.ebextensions文件中的system site packages目录中:

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会将它们放在前面)。在

相关问题 更多 >