【问题标题】:How to add project path to PYTHONPATH in sublime text 3如何在 sublime text 3 中将项目路径添加到 PYTHONPATH
【发布时间】:2018-02-21 08:32:31
【问题描述】:

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,可以检查项目中的所有包和模块。 但我不想把它写在每个文件夹/每个脚本中。试图找到如何配置 Build System 或 project.sublime-settings。

附言曾在 Pycharm 工作过,并尝试过 Sublime Text,据我了解,Pycharm 会自动添加路径。

【问题讨论】:

    标签: python-3.x build project sublimetext pythonpath


    【解决方案1】:

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

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

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

    【讨论】:

    • 不回答 OP 的问题
    • 不,我正在尝试用崇高的文本制作舒适的 IDE。因此,我创建了 sublime 项目,使用 anaconda 3 构建了自定义系统。(sublimetext.info/docs/en/reference/build_systems.html)。现在我想要 sublime text 将项目目录添加到 sys.path。然后package examples就能找到package src。试过 // "env": // { // "PYTHONPATH": "$project_path", // },
    【解决方案2】:

    寻找的人总会找到

    决定用 arg -c 运行 python;在那里进行设置并运行文件

    这是我的构建系统文件:

    {
       "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.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"
    }
    

    缺点:工作目录不正确 - 如果您创建或读取文件 - 应该考虑它

    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 “环境设置”

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

    EnvironmentSettings - 用户

    {
        "set_sublime_variables": true
    }
    

    mine_proj.sublime 项目: 只添加“设置”部分

    {
        "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": "."
            }
        ]
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-30
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      相关资源
      最近更新 更多