[英]Python3/cloud9/lambda - making imported modules available to lambda
[英]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"
}
對出了什么問題有什么想法嗎? 非常感謝
從開始到結束:
$ virtualenv -p /usr/bin/python36 vpy36
$ source vpy36/bin/activate $ pip3 install tweepy
將下面的示例代碼復制並粘貼到您的 .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”的引用,代碼應該適合您。
選擇運行器並運行文件:選擇您的運行器(在本例中為“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.