简单升华文本3 Python 27构建系统-将项目文件夹添加到路径
我试图在sublime text 3中建立一个非常简单的python 2构建系统 python的默认构建环境可以工作,但我希望能够通过将项目文件夹添加到简单升华文本3 Python 27构建系统-将项目文件夹添加到路径,python,python-2.7,sublimetext3,sublimetext,Python,Python 2.7,Sublimetext3,Sublimetext,我试图在sublime text 3中建立一个非常简单的python 2构建系统 python的默认构建环境可以工作,但我希望能够通过将项目文件夹添加到PYTHONPATH来导入项目的顶级模块 以下是我对构建系统的尝试: { "cmd": ["python", "-u", "$file"], "env": { "PYTHONPATH": "$project_path" }, "file_regex": "^[ ]*File \"(...*?)\", line
PYTHONPATH
来导入项目的顶级模块
以下是我对构建系统的尝试:
{
"cmd": ["python", "-u", "$file"],
"env":
{
"PYTHONPATH": "$project_path"
},
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
import os
print(os.environ['PYTHONPATH'])
终端弹出:
Traceback (most recent call last):
File "C:\project", line 4, in <module>
from lib.util.utilities import pairwise
ImportError: No module named lib.util.utilities
[Finished in 0.3s]
回溯(最近一次呼叫最后一次):
文件“C:\project”,第4行,在
从lib.util.utilities成对导入
ImportError:没有名为lib.util.utilities的模块
[以0.3秒完成]
它没有看到$project\u路径
文件夹,否则它将能够导入实用程序,因为lib/
是顶级项目文件夹中的一个文件夹。我怎样才能解决这个问题
根据我的测试,我使用的是x64 Windows 8.1,到目前为止,变量未在
env
中展开
我通过在构建系统中运行以下Python代码发现了这一点:
{
"cmd": ["python", "-u", "$file"],
"env":
{
"PYTHONPATH": "$project_path"
},
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
import os
print(os.environ['PYTHONPATH'])
其中输出:$project\u path
使用以下构建系统将起作用,尽管每次运行代码时都会产生生成shell的开销:
{
"shell_cmd": "export PYTHONPATH=\"$project_path\"; python -u \"$file\"",
"windows":
{
"shell_cmd": "set \"PYTHONPATH=$project_path\" & python -u \"$file\"",
},
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
这适用于我在OS X和Windows上的以下设置:
te st
├── lib
│ ├── __init__.py
│ └── util.py
├── src
│ └── te st.py
└── test.sublime-project
lib是一个模块吗?也就是说,它是否包含一个
\uuuu init\uuuuuuuuuuupy
文件?@ThinkChaos是的,lib包含一个\uuuuu init\uuuuuuuuuuuuuuuuupy
文件。你确定你的构建系统是正在使用的吗?是的,它是在工具->构建系统-/myu python2\ubuild
下选择的。我知道'export'不被识别为内部或外部命令,可操作的程序或批处理文件。[在0.0秒内完成,退出代码为1]
这是默认的windows shell命令吗?是的,windows忘记了这一点;对不起@user27886我也修复了它在Windows上使用空格的问题。这就是set“PYTHONPATH=$project\u path”
的情况。我为您添加了一个工作项目结构,以便与您的进行比较。