【问题标题】:Using virtualenv with Sublime Text 3 and SublimeREPL将 virtualenv 与 Sublime Text 3 和 SublimeREPL 一起使用
【发布时间】:2015-07-29 07:18:06
【问题描述】:

我正在尝试设置 ST3 以使用 Python 的 virtualenv,在 Windows 8.1 上运行。我通常使用 SublimeREPL 和我的全局 Python 安装来运行文件。但是,现在我正在使用 venvs,我无法运行任何东西。这是我一直在尝试的:

我有一个父目录,其中包含一个文件夹 virtualenvs,然后是一个 scripts,用于存放我的 .py 文件。我通常只是导航到\virtualenvs\venv\scripts\activate 并使用 python 解释器完成我的工作,但我希望能够使用 ST3 和 SublimeREPL 构建文件而无需通过命令行。

我做了一个如下所示的构建系统:

{
    "shell_cmd": ["\code\virtualenvs\venv\scripts\python.exe", "-u", "$file"],
    "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
    "selector": "source.python",
}

但我什至不确定这是否是我使用 SublimeREPL 需要做的事情,因为我以前从来不用担心Tools > Build Systems,只需担心Tools > SublimeREPL > Python > Python - RUN current file。

如何更改构建系统或自定义 SublimeREPL 的 RUN?对于测试用例,我在 venv 中安装了 requests 模块,但在我的全局 python 安装中没有。从命令行导入它可以正常工作,但带有 import requests 的 .py 文件会返回 ImportError。

【问题讨论】:

    标签: python virtualenv sublimetext sublimetext3 sublimerepl


    【解决方案1】:

    ST3 构建系统和 SublimeREPL 提供两种不同的功能。构建系统是您在使用诸如 C 之类的编译语言时通常会使用的东西。它允许您定义您希望如何从源文件构建程序。

    您还可以将构建系统与 Python 一起使用。在这种情况下,它将为您编译当前打开的文件。

    另一方面,SublimeREPL 允许您在 Sublime 中运行终端会话,并且(除其他外)在该会话的上下文中评估文件。我建议你看看documentation for SublimeREPL and Python:

    现有的 Python 和 Execnet 集成都支持 virtualenv。支持多种使用 Python 的方式,包括 PDB 和 IPython。

    要让 SublimeREPL 发现 virtualenv 创建的环境,它们应该在以下之一中创建或符号链接:

    • ~/.virtualenvs 默认为 virtualenvwrapper
    • ~/.venvs 默认为 venv

    另外,可以在 SublimeREPL 配置文件中的“python_virtualenv_paths”中添加更多路径。

    【讨论】:

      【解决方案2】:
      1. 在 sublime 编辑器中安装“virtualenv”包
      2. 然后转到构建系统并将其设置为'python + virtualenv' 3.现在转到sublime项目文件并添加virtualenv的路径 "virtualenv":"D:/my_projects/scrapping_env",
      3. 要添加测试构建系统,请在 .sublime-project 设置中添加以下内容 "build_systems": [ { "name": "Test", "shell_cmd": "D:/my_projects/scrapping_env/Scripts/python py.test" }, ],

      4. 从工具中选择测试构建系统,如图所示

      【讨论】:

      • 你能帮忙 - 我试过你的建议,我一直有错误 python:realpath couldn't resolve "/Library/Frameworks/Python.framework/Versions/3.6/bin/python" 我还尝试设置包设置> virtualenv > 用户并指定我的本地文件夹 virtualenv 的目录(名为 venv3)但是不断出现无法找到解释器的错误。你能帮我避免问重复的问题吗?
      猜你喜欢
      • 2018-10-28
      • 2014-09-17
      • 1970-01-01
      • 2014-02-10
      • 2018-11-22
      • 1970-01-01
      • 2017-07-10
      • 2019-08-28
      • 2014-12-19
      相关资源
      最近更新 更多