如何在sublime text 3中将项目路径添加到PYTHONPATH

How to add project path to PYTHONPATH in sublime text 3

Check project tree. 你好。我正在尝试 运行 example.py ,但在导入 src 时遇到问题。它找不到模块。 我可以解决这个问题,写:

sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

现在 sys.path 有项目文件夹的路径 D:\...\cubic_reg-master,可以检查项目中的所有包和模块。 但我不想在每个 folder/every 脚本中都写它。试图找到如何配置构建系统或 project.sublime-settings.

p.s。曾在 Pycharm 工作过,并尝试使用 Sublime Text,据我了解 Pycharm 自动添加路径。

您真的应该很少需要更改您的 PYTHONPATH。有点难以理解您的问题,但我假设您想将 sublime text 添加到常规 PATH 中,以便您可以从命令行调用 sublime text 中的项目。要做到这一点,请参阅这篇文章...

OSX:https://www.sublimetext.com/docs/3/osx_command_line.html

对于 Windows:Sublime Text from Command Line (Win7) 查看第一个答案

寻找的人总能找到

决定是 运行 python with arg -c;在那里进行设置和 运行 文件

这是我的构建系统文件:

{
   "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
   "selector": "source.python",
   "shell": "true",
   "windows":
   {
           "cmd": ["D:\Development\Python\Anaconda3\python", "-c", "import sys; sys.path.insert(0, '$project_path'); exec(open('$file_name', 'r').read());"]
   }

}

p.s。可能这是危险的解决方案,我很乐意研究更好的方法

p.p.s。对于插件 sublime Repl 相同的设置有效,但应该使用 $folder 和 $file_basename:

BrowsePackages -> SublimeREPL\config\Python\Main.sublime-menu
{...
    "cmd": ["D:\Development\Python\Anaconda3\python", "-i", "-c", "import sys; sys.path.insert(0, '$folder'); exec(open('$file_basename', 'r').read());"],

... }

---------------------------------------- ---------------------------------------------- -------------------------------------- 六个月后

---------------------------------------- ---------------------------------------------- --------------------------------------

找到更好的决定:

1) 构建系统有选项 'env' 第一个想法是写 "env": {"PYTHONPATH": "$project_path"}, 但它不知道 env opt 这样的变量 $project_path,所以这有效

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

缺点:不正确working_dir - 如果你创建或读取文件 - 应该考虑它

2) 更好的方法是在 cmd 中使用一些命令:

{
   "windows":
   {
      "shell": "true",
      "cmd":"set PYTHONPATH=$project_path & D:\Development\Python\Anaconda3\python -u $file",
   },
   "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
   "selector": "source.python",
}

3) 使用插件将 PYTHONPATH 添加到 mine_proj.sublime-project "environment settings"

使用真实路径或 %project_path%(.sublime 项目存储在项目中,使用 %project_path% 开启 "set_sublime_variables")

环境设置 - 用户

{
    "set_sublime_variables": true
}

mine_proj.sublime-项目: 仅添加 "settings" 部分

{
    "build_systems":
    [
        {
            "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
            "name": "Anaconda Python Builder",
            "selector": "source.python",
            "shell_cmd": "\"python\" -u \"$file\""
        }
    ],
    "settings":
    {
        "env":
        {
          "Windows":
          {
                "PYTHONPATH": "%project_path%"
          },
        }
    },
    "folders":
    [
        {
            "path": "."
        }
    ]
}