简单升华文本3 Python 27构建系统-将项目文件夹添加到路径

简单升华文本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

我试图在sublime text 3中建立一个非常简单的python 2构建系统

python的默认构建环境可以工作,但我希望能够通过将项目文件夹添加到
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”
的情况。我为您添加了一个工作项目结构,以便与您的进行比较。