所以,再一次,我制作了一个不错的 Python 程序,它让我的生活变得更加轻松并节省了大量时间。当然,这涉及到一个virtualenv,用virtualenvwrapper 的mkvirtualenv
函数制作。该项目有一个 requirements.txt 文件,其中包含一些必需的库(也有请求:D),如果没有这些库,程序将无法运行。
我正在尝试添加一个 bin/run-app
可执行 shell 脚本,该脚本将在我的路径中(实际上是符号链接(symbolic link))。现在,在这个脚本中,我需要先切换到 virtualenv,然后才能运行这个程序。所以我把这个放进去
#!/bin/bash
# cd into the project directory
workon "$(cat .venv)"
python main.py
文件
.venv
包含 virtualenv 名称。但是当我运行这个脚本时,我得到了 workon: command not found
错误。当然,我的 bashrc 中有 virtualenvwrapper.sh 源,但它似乎在这个 shell 脚本中不可用。
那么,我如何在这里访问那些 virtualenvwrapper 函数?还是我这样做是错误的?你如何启动你的python工具,每个工具都有自己的virtualenv!?
最佳答案
只需在脚本中获取 virtualenvwrapper.sh
脚本即可导入 virtualenvwrapper 的函数。然后,您应该可以在脚本中使用 workon
函数。
也许更好,您可以创建一个 shell 脚本(例如,您可以将其命名为 venv-run.sh
)来将任何 Python 脚本运行到给定的 virtualenv 中,并将其放置在 /usr/bin
、 /usr/local/bin
或 .4823141 中的任何目录中
这样的脚本可能如下所示:
#!/bin/sh
# if virtualenvwrapper.sh is in your PATH (i.e. installed with pip)
source `which virtualenvwrapper.sh`
#source /path/to/virtualenvwrapper.sh # if it's not in your PATH
workon $1
python $2
deactivate
并且可以像
PATH
一样简单地使用关于python - 在 shell 脚本中无法使用 virtualenvwrapper 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7538628/