我希望在處理指定的virtualenv時執行多個操作。如何在makefile中使用virtualenv
例如命令
make install
將相當於
source path/to/virtualenv/bin/activate
pip install -r requirements.txt
這可能嗎?
我希望在處理指定的virtualenv時執行多個操作。如何在makefile中使用virtualenv
例如命令
make install
將相當於
source path/to/virtualenv/bin/activate
pip install -r requirements.txt
這可能嗎?
在讓你可以運行一個shell作爲命令。在這個shell中,你可以做所有你可以在你從comandline開始的shell中完成的任何事情。例如:
install:
(\
source path/to/virtualenv/bin/activate; \
pip install -r requirements.txt; \
)
必須注意的;
和\
。
打開和關閉大括號之間的所有內容都將在shell的單個實例中完成。
您也可以使用名爲「VIRTUALENVWRAPPER_SCRIPT」的環境變量。像這樣:
install:
(\
source $$VIRTUALENVWRAPPER_SCRIPT; \
pip install -r requirements.txt; \
)
我有幸運了。
install:
source ./path/to/bin/activate; \
pip install -r requirements.txt; \
你應該使用它,它對我來說是有用的。
report.ipynb : merged.ipynb
(bash -c "source ${HOME}/anaconda3/bin/activate py27; which -a python; \
jupyter nbconvert \
--to notebook \
--ExecutePreprocessor.kernel_name=python2 \
--ExecutePreprocessor.timeout=3000 \
--execute merged.ipynb \
--output=$< $<")
我喜歡用的東西,只運行時requirements.txt變化:
venv: venv/bin/activate
venv/bin/activate: requirements.txt
test -d venv || virtualenv venv
. venv/bin/activate; pip install -Ur requirements.txt
touch venv/bin/activate
test: venv
. venv/bin/activate; nosetests project/test
clean:
rm -rf venv
find -iname "*.pyc" -delete
沒有必要爲''在()這種情況。使已經爲規則體中的每一行生成一個新的shell實例。您只需使用連續標記就可以讀取這些行並在單個shell中執行它們,而不是在多個shell中執行它們,這是默認情況下的做法。 –