【问题标题】:Cloud9 IDE to run python3 with venvCloud9 IDE 使用 venv 运行 python3
【发布时间】:2015-10-17 07:22:05
【问题描述】:

我正在尝试使用Cloud9 中的自定义运行程序来使用安装在同一目录中的虚拟环境启动python 3.4 下的项目,但它不起作用。跑步者没有检测到我的依赖关系,这可能意味着它没有正确激活venv

// Create a custom Cloud9 runner - similar to the Sublime build system
// For more information see https://docs.c9.io/custom_runners.html
{
  "cmd": [
    "bash",
    "--login",
    "-c",
    "source bin/activate && python oric.py"
  ],
  "working_dir": "$project_path",
  "info": "Your code is running at \\033[01;34m$url\\033[00m.\n\\033[01;31m"
}

有什么想法吗?非常感谢

【问题讨论】:

    标签: python virtualenv cloud9-ide


    【解决方案1】:

    从头到尾:

    1. 创建虚拟环境:
    $ virtualenv -p /usr/bin/python36 vpy36
    
    1. 将 Python 包安装到虚拟环境中:
    $ source vpy36/bin/activate
    $ pip3 install tweepy
    
    1. 创建跑步者:
    • 导航菜单以创建跑步者

    • 创建 .run 文件

    将下面的示例代码复制并粘贴到您的 .run 文件中。这将允许您的 venv 正常和调试执行。

    // This file overrides the built-in Python 3 runner
    // For more information see http://docs.aws.amazon.com/console/cloud9/change-runner
    {
      "script": [
        "if [ \"$debug\" == true ]; then ",
        "    /home/ec2-user/environment/venvpy36/bin/python -m ikp3db -ik_p=15471 -ik_cwd=$project_path \"$file\" $args",
        "else",
        "   /home/ec2-user/environment/venvpy36/bin/python \"$file\" $args",
        "fi",
        "checkExitCode() {",
        "    if [ $1 ] && [ \"$debug\" == true ]; then ",
        "        /home/ec2-user/environment/venvpy36/bin/python -m ikp3db 2>&1 | grep -q 'No module' && echo '",
        "    To use python debugger install ikpdb by running: ",
        "        sudo yum update;",
        "        sudo yum install python36-devel;",
        "        sudo source /home/ec2-user/environment/venvpy36/bin activate",
        "        sudo pip-3.6 install ikp3db;",
        "        sudo deactivate",
        "        '",
        "    fi",
        "   return $1",
        "}",
        "checkExitCode $?"
      ],
      "python_version": "/home/ec2-user/environment/venvpy36/bin/python",
      "working_dir": "$project_path",
      "debugport": 15471,
      "$debugDefaultState": false,
      "debugger": "ikpdb",
      "selector": "^.*\\.(py)$",
      "env": {
        "PYTHONPATH": "$python_path"
      },
      "trackId": "/home/ec2-user/environment/venvpy36/bin/python"
    }
    

    如果您在步骤 1 中将 venv 放置在不同的目录中 查找并替换“/home/ec2-user/environment/venvpy36/bin”的所有引用为您自己的 venv bin 目录和代码应该适合你。

    1. 最后,保存文件

    选择 Runner 并运行文件: 选择您的跑步者(在本例中为“vpy36”)。然后点击“运行”,它应该可以工作了。

    【讨论】:

      【解决方案2】:

      我在 Cloud9 上使用 virtualenv,它对我来说很好用。 Cloud9 工作区似乎预装了 virtualenv 包装器(至少,Django 工作区是这样),所以如果你创建一个 virtualenv:

      $ mkvirtualenv foo
      

      然后,您可以像这样创建跑步者,例如:

      {
        "cmd": [
          "bash",
          "--login",
          "-c",
          "source /home/ubuntu/.virtualenvs/foo/bin/activate && python whatever.py"
        ],
        # ... rest of the configuration
      }
      

      【讨论】:

      • 不用激活,@Joshua的回答更中肯。
      【解决方案3】:

      我通过直接设置环境变量而不是尝试获取激活脚本来让 cloud9 使用 virtualenv。

      {
        "cmd": [
          "/var/lib/cloud9/venv/bin/python",
          "$file",
          "$args"
        ],
        "selector": "^.*\\.(python|py)$",
        "env": {
          "PYTHONPATH": "/var/lib/cloud9/venv/lib/python3.5/site-packages",
          "VIRTUAL_ENV": "/var/lib/cloud9/venv",
          "PATH": "/var/lib/cloud9/venv/bin:$PATH"
        }
      }
      

      【讨论】:

      • 我们如何允许它在调试模式下使用?
      • 我实际上切换到 VSC 远程而不是 c9 所以,我不知道。
      • 您不需要设置任何环境变量。
      • 你显示的是什么文件?真的这是你的答案吗?
      • 我很抱歉@doug65536 缺乏细节。它在某处的配置区域中。当你弄清楚时,你能成为英雄并在哪里添加评论吗?
      【解决方案4】:

      为了使用安装在Cloud9上的python版本3,您需要使用python3(以及分别使用pip3来安装模块)。

      【讨论】:

        猜你喜欢
        • 2016-02-22
        • 1970-01-01
        • 1970-01-01
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-08
        相关资源
        最近更新 更多