簡體   English   中英

Cloud9 IDE 使用 venv 運行 python3

[英]Cloud9 IDE to run python3 with venv

我正在嘗試使用Cloud9的自定義運行程序使用安裝在同一目錄中的虛擬環境在python 3.4下啟動項目,但它不起作用。 runner 沒有檢測到我的依賴項,這大概意味着它沒有正確激活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"
}

對出了什么問題有什么想法嗎? 非常感謝

從開始到結束:

  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 放在不同的目錄中,請使用您自己的 venv bin 目錄查找並替換所有對“/home/ec2-user/environment/venvpy36/bin”的引用,代碼應該適合您。

  1. 最后,保存文件

選擇運行器並運行文件:選擇您的運行器(在本例中為“vpy36”)。 然后單擊“運行”,它應該可以工作。

我讓 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"
  }
}

我在 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
}

為了使用安裝在 Cloud9 上的 python 版本 3,您需要使用python3 (分別使用pip3來安裝模塊)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM