我有一个项目,现在我想使用 pipenv。
我想从我的主 bin 目录对它进行符号链接,这样我就可以从另一个目录(它与本地文件交互的地方)运行它,但仍然使用适当安装的文件在 pipenv 中运行它。
我可以做类似的事情吗
pipenv run python /PATH/TO/MY/CODE/foo.py localfile.conf
Run Code Online (Sandbox Code Playgroud)
或者它不会选择 /PATH/TO/MY/CODE/Pipenv 中定义的 pipenv ?
小智 14
不确定这是否与您在 2018 年使用的pipenv版本相关,但从当前版本开始,您可以使用PIPENV_PIPFILE环境变量。你最终会得到一个包装壳脚本,看起来像:
export PIPENV_PIPFILE=/my/project/dir/Pipfile
exec pipenv run command ...
Run Code Online (Sandbox Code Playgroud)
(虽然我迟到了半年才回答,因为这是第一个相关搜索结果,所以我下次可以再次找到它。)
小智 5
Pipenv 是 virtualenv 的包装器,它将 virtualenv 文件保存在主目录中的某个文件夹中。我在 中找到了它们/home/MYUSERNAME/.local/share/virtualenvs。
所以我写了一个small_script.sh:
#!/bin/bash
source /home/MYUSERNAME/.local/share/virtualenvs/MYCODE-9as8Da87/bin/activate
python /PATH/TO/MY/CODE/foo.py localfile.conf
deactivate
Run Code Online (Sandbox Code Playgroud)
它会为自己激活 virtualenv,然后在本地目录中运行 python 代码,最后停用 virtualenv。
您可以将其替换localfile.conf为$@允许您运行的./small_script.sh localfile.conf.