Python pipenv:仅在已安装的文件夹中工作?
Pipenv似乎只在PIP文件所在的目录中工作。也许我正试图用一种它不是为之设计的方式来使用它Python pipenv:仅在已安装的文件夹中工作?,python,virtualenv,pipenv,Python,Virtualenv,Pipenv,Pipenv似乎只在PIP文件所在的目录中工作。也许我正试图用一种它不是为之设计的方式来使用它 例如,我安装了一个名为“leo”(一个编辑器)的工具,毫不奇怪,我将进入许多文件夹并启动pipenv run leo,它将开始安装另一个虚拟环境。解决方法是什么?用谷歌搜索这个确实很困难,但我找到了最好的解决方案 要使用pipenv轻松激活任何位置的虚拟环境,您可以使用pew 一旦您安装了pew,您就可以轻松地在myvenv上进行“pew训练” Pew在引擎盖下使用pipenv,它也在Windows上
例如,我安装了一个名为“leo”(一个编辑器)的工具,毫不奇怪,我将进入许多文件夹并启动
pipenv run leo
,它将开始安装另一个虚拟环境。解决方法是什么?用谷歌搜索这个确实很困难,但我找到了最好的解决方案
要使用pipenv轻松激活任何位置的虚拟环境,您可以使用pew
一旦您安装了pew,您就可以轻松地在myvenv上进行“pew训练”
Pew在引擎盖下使用pipenv,它也在Windows上工作。是的,pipenv仅在PIP文件所在的目录(或其子目录)中工作 如果您想将Python程序安装到他们自己的虚拟环境中,同时仍然能够在任何地方使用它们,那么您可以使用–安装后,您只需执行
pipsiinstall
即可将Python包安装到自己的VirtualEnvironment中
(如果你觉得很勇敢,有一些修复和改进还没有进入主存储库。你可以通过传递
--src git来安装它+https://github.com/anowlcalledjosh/pipsi@开发#egg=pipsi
到get pipsi.py
脚本。)这不是对你问题的直接回答,但我也遇到了从另一个目录运行控制台应用程序的问题。我不确定这是否是最好的/最具可移植性的解决方案,但如果您对使用bash脚本作为中间版本感到满意:
#!/usr/bin/env bash
CURRENT="$(dirname "$0")"
ROOT_DIR="$CURRENT/.."
(cd $ROOT_DIR && pipenv run python3 app/console.py "$@")
我的项目目录结构如下所示:
.
├── Pipfile
├── Pipfile.lock
├── app
│ ├── __init__.py
│ └── console.py
└── bin
└── console
现在您可以从任何地方运行
/absolute/path/to/bin/console
。在Pipfile所在的目录下,执行以下操作
pipenv--venv
这将显示虚拟环境所在的路径。复制该路径,如/Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj
,并在任何其他文件夹中使用源文件激活venv,例如:
source/Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj/bin/activate
这包括在。您可以从任何目录运行:
#使用pip(非pipenv)安装皮尤
$pip安装皮尤
...
#获取venv名称
$(cd&pipenv--venv)
/python-1234ABCD
#激活静脉
$pew workon python-1234ABCD
#像往常一样运行pipenv
$pipenv运行leo
据我所知,如果您当前已经在使用pipenv运行虚拟环境,则只能执行诸如使用pipenv运行文本编辑器之类的命令。如果没有,它将在当前目录中创建一个新的虚拟环境,然后在其中运行该命令
pipenv--help的结果显示,对于run命令:
run生成安装到virtualenv中的命令
只需在项目目录中使用带有PIP文件的pipenv shell
,您就可以自由移动。virtualenv
并不是那么笨拙,您需要第二个工具来包装它。@BallpointBen当问题是关于使用工具时,我不认为“不要使用那个工具”是一个有用的回答。我建议使用不同的工具库。。。pipenv shell有点做这项工作。。。只有一点点痛。。。我需要转到文件夹来制作“pipenv shell”,对吗?从技术上讲,pipenv在引擎盖下使用Pew是另一种方式,因此它的VirtualNV与Pew兼容:)