简单的Sublime Text 3 python27构建系统 - 将项目文件夹添加到路径

时间:2015-07-02 17:04:51

标签: python python-2.7 sublimetext3 sublimetext

我正在尝试在崇高文本3中设置一个非常简单的python 2构建系统。

python的默认构建环境有效,但我希望能够通过将项目文件夹添加到PYTHONPATH来导入项目的顶级模块。

以下是我对构建系统的尝试:

{
  "cmd": ["python", "-u", "$file"],
  "env": 
  {
      "PYTHONPATH": "$project_path"
  },
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python"
}

终端弹出:

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]

它没有看到$project_path文件夹,否则它将能够导入实用程序,因为lib/是顶级项目文件夹中的文件夹。我该如何解决这个问题?

我在x64 Windows 8.1上

1 个答案:

答案 0 :(得分:1)

根据我的测试和a post on Sublime Text's forums,变量不会在env中展开。

我通过在您的构建系统中运行以下Python代码来找到它:

import os

print(os.environ['PYTHONPATH'])

哪个输出:$project_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