如何结合Pipenv虚拟环境与-m模块方式运行依赖并行助手的Python脚本
解决方案:结合Pipenv虚拟环境与模块导入问题
核心问题原因
你执行的命令cd ~/git/project_folder/; pipenv run python -m subfolder_prog_1.prog1存在两个关键问题:
- Pipenv默认在当前目录(
project_folder)查找Pipfile,无法识别subfolder_prog_1内的独立虚拟环境; - 即使环境识别正确,Python模块搜索路径未正确包含
project_folder,导致无法找到subfolder_prog_1模块。
可行解决方案
方案1:指定Pipenv环境目录并设置模块路径
在project_folder目录下,通过--project参数指定子目录的Pipenv环境,同时将当前目录加入Python模块搜索路径:
cd ~/git/project_folder/ PYTHONPATH=$(pwd) pipenv run --project=./subfolder_prog_1 python -m subfolder_prog_1.prog1
方案2:进入子目录并临时添加父目录到模块路径
直接进入子目录,通过PYTHONPATH环境变量让Python找到并行的helpers模块:
cd ~/git/project_folder/subfolder_prog_1 PYTHONPATH=../ pipenv run python prog1.py
方案3:在子目录Pipfile中配置环境变量
编辑subfolder_prog_1/Pipfile,添加PYTHONPATH环境变量,永久解决模块路径问题:
[env] PYTHONPATH = "../"
之后可直接在子目录运行:
cd ~/git/project_folder/subfolder_prog_1 pipenv run python prog1.py
或从父目录运行:
cd ~/git/project_folder/ pipenv run --project=./subfolder_prog_1 python subfolder_prog_1/prog1.py
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

