Salt virtualenv.managed使用setup.py

时间:2016-05-10 14:50:46

标签: salt-stack

我在setup.py中有我的python包需求,而我只是从pip install .存在的目录中执行setup.py。我没有requirements文件而且我不想拥有一个文件。如何告诉salt使用setup.py代替requirements.txt

1 个答案:

答案 0 :(得分:0)

将pip包安装到virtualenv并运行setup.py应该是不同的要求。

我认为setup.py触发只是自助模块的意思,外部包应该放在saltstack virtualenv设置下,这样你就可以看到所需的外部包是否安装失败。但这也取决于你自己的口味。

要在virtualenv中运行setup.py,您必须创建一个调用virutalenv的脚本,然后运行setup.py,例如: vi run-setup.sh

#!/bin/bash
source $HOME/.virtualenv/xyz/bin/activate
cd $HOME/xyz_app
python setup.py 

然后使用状态文件中的cmd.run来运行它

run setup.py for my xyz app :
  cmd_run:
    - name: bash <xyz_app folder name>/run-setup.sh
    - user: <username>
    - group: <groupname>

更新:

由于您希望将特定的python包加载到virtualenv,因此您可以在安装过程中立即执行此操作。然后只使用cmd.run加载启动setup.py的批处理(以使您的自定义应用程序正常工作)到virtualenv中。

create-my-apps-virtualenv:
  virtualenv.managed:
    - name: /home/myapphome/.virtualenv/myapp
    - user: myappusername
    - no_chown: False
    # install this pacakge to my virtualenv, package must be case sensitive according. 
    - pip_pkgs: json, MySQL-python,SQLAlchemy