如何在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": "."
}
]
}
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": "."
}
]
}