[英]Windows, Python, VENV, and Sublime Text Build systems: Path Error When Activating VENV
好的,我已经查看了一堆带有崇高文本问题的 python venv,我很确定这个问题是由于 windows 上的 venv 的细节造成的。
我在 Windows 上,使用 Python 3.10 和 virtualenv package 来管理我的虚拟环境。
我正在尝试在 Sublime 项目文件中设置自定义构建,该文件执行以下操作:
我一直在将两者都放入一个构建命令时遇到问题,所以这是当前数组,其中两个步骤分别构建:
"build_systems":
[
{
"name": "activate",
"cmd": "$project_path/venv/Scripts/activate.bat",
"shell": true
},
{
"name": "Current VENV?",
"cmd": "echo %VIRTUAL_ENV%",
"shell": true
},
]
目前,当我运行激活构建时,我得到以下信息:
The system cannot find the path specified.
[Finished in 80ms with exit code 1]
[cmd: C:\Users\kreeh\Repos\project/venv/Scripts/activate.bat]
[dir: C:\Users\kreeh\Repos\project]
If I run C:\Users\kreeh\Repos\project/venv/Scripts/activate.bat
in a separate cmd.exe window, it correctly activates the venv, and when I print the %VIRTUAL_ENV% var, it correctly returns the venv地点。
C:\Users\kreeh>C:\Users\kreeh\Repos\project/venv/Scripts/activate.bat
(venv) C:\Users\kreeh>echo %VIRTUAL_ENV%
C:\Users\kreeh\Repos\project\venv
我认为这是 Sublime Text 构建系统如何处理 windows 路径格式的问题。 如果我尝试使用工作目录参数,它不起作用,因为 cmd.exe 不能很好地执行相对路径。
{
"name": "activate",
"cmd": "venv/Scripts/activate.bat",
"working_dir": "${project_path}",
"shell": true
},
返回
'venv' 不是内部或外部命令、可运行程序或批处理文件。 [60ms 完成]
那么,有没有办法让 Sublime Build 系统正确处理 windows 路径,或者有没有办法在 cmd 中使用相对路径?
@MattDMo 指出了我的逻辑中的缺陷,即 venv 激活本身实际上并没有做任何事情——它改变了 python 解释器,用于该提示 window 中的未来命令。 因此,对于构建系统来说,这是一种无用的东西。 相反,到目前为止,我添加了一个特定于 venv 的 pip 安装和构建命令。
{
"build_systems":
[
{
"name": "pip install",
"cmd": "${project_path}/venv/Scripts/pip3.exe install -r requirements.txt ",
"working_dir": "${project_path}",
"shell": true
},
{
"name": "VENV Build",
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python",
"cmd": "${project_path}/venv/Scripts/python.exe $file",
"shell": true,
},
],
"folders":
[
{
"follow_symlinks": true,
"path": "."
}
],
需要注意的一点是,作为 Windows 用户,我必须将follow_symlinks=true
添加到文件夹列表中——这是因为 venv 在 windows 上的工作方式(或至少在我的安装上),没有实际的 Z2DFCZ6EEEB4343BDDB755557EE6那个venv文件夹,它是一个符号链接。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.