2016-05-10 80 views
0

我有我的python包的要求setup.py,我只是從setup.py存在的目錄做pip install .。我沒有requirements文件,我不想擁有一個。如何告訴鹽使用setup.py而不是requirements.txt鹽virtualenv.managed使用setup.py

回答

0

將pip包安裝到virtualenv並運行setup.py應該是不同的要求。

我假定setup.py觸發只是自助服務模塊的意思,外部軟件包應該放在saltstack virtualenv設置下,這樣您可以看到所需的外部軟件包是否安裝失敗。但這也取決於你自己的口味。

要在virtualenv中運行setup.py,您必須創建一個調用virutalenv的腳本,然後運行setup.py,例如,六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> 

UPDATE:

既然要特別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 
+0

有沒有辦法使用'pip.installed'或'virtualenv.managed'來完成它?看起來像一個重要的功能。如果沒有安裝來自'setup.py'的python模塊,那麼似乎沒有從'requirements.txt'安裝軟件包的要求。 – ebnius

+1

好吧,我同意salt.modules開發者的意見,使他們能夠使用niche函數。作爲這些模塊的一部分執行setup.py,恕我直言,是不好的主意,與這些模塊功能無關。 – mootmoot

+0

用'pip install'完成'cmd.run'。謝謝 – ebnius