标签: virtualenv

我希望我已经创建的 virtualenv 能够访问系统包

我最近在 ubuntu 14.04 上安装了 opencv3。我遵循的教程出于某种原因使用了 virtualenv。现在我想将 opencv 从虚拟环境移至我的全局环境。原因是我似乎无法使用安装在我的全局环境中的软件包,这让我感到不安。那么我该怎么做呢?

python opencv virtualenv

1
推荐指数
1
解决办法
1162
查看次数

在虚拟环境中的 Ubuntu 16.04 上将 Python 程序作为服务运行

我正在尝试让 Flask + SocketIO 应用程序在虚拟环境中的 Ubuntu 16.04 上作为服务运行。我的服务器每天凌晨 3 点重新启动(超出我的控制范围),因此我需要它在启动时自动启动。

单独运行脚本效果很好:

$ python main.py
(29539) wsgi starting up on http://127.0.0.1:8081
Run Code Online (Sandbox Code Playgroud)

我可以说它正在工作,因为它正在提供页面(通过按照Stack Overflow 答案设置的 nginx 服务器,尽管我认为这不相关。)

这是我的/etc/systemd/system/opendc.service

[Unit]
Description=OpenDC flask + socketio service

[Service]
Environment=PYTHON_HOME=/var/www/opendc.ewi.tudelft.nl/web-server/venv
Environment=PATH=$VIRTUAL_ENV/bin:$PATH
ExecStart=/var/www/opendc.ewi.tudelft.nl/web-server main.py
Restart=always

[Install]
WantedBy=multi-user.target
Run Code Online (Sandbox Code Playgroud)

所以当我尝试使用以下方法来实现这一点时:

$ sudo systemctl daemon-reload
$ sudo systemctl restart opendc
Run Code Online (Sandbox Code Playgroud)

它不再提供页面服务。状态显示:

$ sudo systemctl status opendc
* opendc.service - OpenDC flask + socketio service
   Loaded: loaded (/etc/systemd/system/opendc.service; enabled; vendor preset: enabled)
   Active: inactive (dead) (Result: exit-code) …
Run Code Online (Sandbox Code Playgroud)

python ubuntu daemon virtualenv flask

1
推荐指数
1
解决办法
4040
查看次数

将 Python 更新到 3.6 后,Virtualenvwrapper 未初始化

我的操作系统 (Arch Linux) 最近将 Python 从 3.5.2 更新到 3.6.0,现在运行任何终端时我都会收到以下消息:

/usr/bin/python: Error while finding module specification for 'virtualenvwrapper.hook_loader' (ModuleNotFoundError: No module named 'virtualenvwrapper')
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.
Run Code Online (Sandbox Code Playgroud)

此外我得到这些输出

$ whereis python
python: /usr/bin/python3.6 /usr/bin/python3.6m /usr/bin/python3.6-config /usr/bin/python3.6m-config /usr/bin/python2.7-config /usr/bin/python /usr/bin/python2.7 /usr/lib/python3.6 /usr/lib/python3.5 /usr/lib/python2.7 /usr/include/python3.6m /usr/include/python2.7 /usr/share/man/man1/python.1.gz

$ which python
/usr/bin/python

$ python --version
Python 3.6.0 …
Run Code Online (Sandbox Code Playgroud)

virtualenv archlinux virtualenvwrapper python-3.x

1
推荐指数
1
解决办法
1156
查看次数

如何在 python 中重新创建虚拟环境

我已经在 Ubuntu 16.04 上安装了 virtualenv 和 virtualenvwrapper 我创建了一个名为 env1 的环境

$ sudo apt-get install python-pip
$ pip install virtualenv
$ pip install --upgrade pip 
$ pip install virtualenvwrapper
$ export WORKON_HOME=~/Envs
$ mkdir -p $WORKON_HOME
$ source /usr/local/bin/virtualenvwrapper.sh
$ mkvirtualenv env1
Run Code Online (Sandbox Code Playgroud)

进入 (env1) 后,我已经安装了几个软件包

(env1) $ pip install numpy
(env1) $ pip install scipy
(env1) $ pip install matplotlib
(env1) $ apt-get install python-tk
Run Code Online (Sandbox Code Playgroud)

我还安装了opencv3(我没有复制如何安装,因为太长了)

我正在将 env1 用于特定项目。

现在我想使用相同的包启动另一个项目,但我还想添加其他包。

我已经创建了 env2,我想知道是否可以将 env1 复制到 env2,而不需要从头开始重新安装所有内容。

python virtualenv

1
推荐指数
1
解决办法
1万
查看次数

使用 virtualenvwrapper 为每个 virtualenv 设置 python 版本

使用 virtualenv 我可以通过 th 选项将 python 版本设置为特定的虚拟环境-p。这意味着对于不同的环境我可以设置不同的 python 版本。virtualenvwrapper 是否有类似的可能性?请注意,我不想设置在所有虚拟环境中使用的系统范围版本。我希望能够灵活地在虚拟环境级别设置 python 版本。

python virtualenv virtualenvwrapper

1
推荐指数
1
解决办法
516
查看次数

Python virtualenv 无法通过 OneDrive 工作

我的项目存储在 OneDrive 上。有时它可以在我的电脑和笔记本电脑上运行,两者都装有 Windows 10。两者上的项目位于同一目录中-C:/OneDrive/code/etc...

当我使用 virtualenv 并下载不同的软件包时,它工作正常,但当我使用我的笔记本电脑时,根本不起作用(反之亦然)。我收到以下错误:

无法导入 runpy 模块导入错误:

没有名为“runpy”的模块

我该如何解决我的笔记本电脑和 PC 上的此问题?有人遇到过类似的问题吗?

python django virtualenv

1
推荐指数
1
解决办法
5496
查看次数

无法在 Jupyter 中导入 Keras

所以我使用 python 3 和 jupyter (使用 pip)设置了虚拟局域网。一切正常,但如果我尝试导入 keras,它将无法在 jupyter 中工作并告诉模块未找到。但是如果我在终端中执行相同的文件(python3 test.py),它就可以正常工作。

which jupyter
/usr/local/bin/jupyter

which python3
/Users/niro273/Desktop/xcorp/bin/python3
Run Code Online (Sandbox Code Playgroud)

如果我这样做,pip3 list这些就是结果。

jupyter (1.0.0)
jupyter-client (5.1.0)
jupyter-console (5.2.0)
jupyter-core (4.3.0)
Keras (2.0.8)
Run Code Online (Sandbox Code Playgroud)

注意-我也在虚拟环境中安装了 jupyter (pip3 install jupyter)。那么我是否必须切换 juypter 执行路径?将不胜感激任何指导。

python virtualenv jupyter keras jupyter-notebook

1
推荐指数
1
解决办法
9996
查看次数

如何从 Gradle 激活虚拟环境?

我的 gradle.build 文件中有以下 exec 命令。

exec {
        workingDir System.getProperty("user.dir")
        commandLine 'python3.6', 'buildscript.py'
    }
exec {
    workingDir System.getProperty("user.dir")
    commandLine 'python3.6', '-m', 'virtualenv', 'env'
}


exec {
    workingDir System.getProperty("user.dir")
    commandLine 'source', 'env/bin/activate'
}

exec {
    workingDir System.getProperty("user.dir")
    commandLine 'pip3.6', 'install', 'pybuilder'
}

exec {
    workingDir System.getProperty("user.dir")
    commandLine 'pyb', '-E', 'env', '-X'
}
Run Code Online (Sandbox Code Playgroud)

这些都在执行 gradle build 时运行的构建任务中。理论上,这应该运行我创建的一个脚本,该脚本创建构建我的 python 程序所需的所有文件,然后它应该创建一个虚拟环境,激活它,在其中安装 pybuilder,然后运行 ​​pybuilder。然而,命令:

exec {
        workingDir System.getProperty("user.dir")
        commandLine 'source', 'env/bin/activate'
    }
Run Code Online (Sandbox Code Playgroud)

看来是失败了 它声称该目录/文件不存在,尽管它通过命令行工作。我不知道为什么会这样。这样做的全部目的是强制 Pybuilder 将我的程序依赖项安装到我创建的虚拟环境中。pyb -E env 从技术上讲应该为我激活虚拟环境,但无论出于何种原因,它都没有将我的依赖项安装到该虚拟环境。在我们的 Jenkins 节点上,这是一个问题,因为我们不希望它们全局安装,更不用说,我无论如何都没有 root 用户权限。

任何帮助将不胜感激。如果您知道另一种让 Pybuilder 正常工作的方法,那就同样好。

python macos virtualenv gradle pybuilder

1
推荐指数
1
解决办法
2957
查看次数

Python Gunicorn Worker 由于参数不正确而退出?

我正在设置一台新服务器,作为该过程的一部分,我设置了 Gunicorn 来提供 Web 文件服务。但是,传输数据时,在旧服务器上有效的命令在该服务器上不起作用。

Gunicorn master 进程似乎启动了工作进程,但工作进程由于“无法识别的参数”而立即退出。命令是:/home/postgres/venv/bin/gunicorn [app]:app。这与之前的服务器相同,只是该服务器使用 virtualenv 而不是全局包。我怀疑这可能是问题所在,但我不确定为什么或如何解决它。

相同的Python版本,但gunicorn版本较新(旧版为19.4.5,新版为19.9.0)。

我已将应用程序名称替换为 [app] 以防止混淆,但名称中没有无效字符或任何内容。

日志:

root@ns500738:/home/postgres/[app]# /home/postgres/venv/bin/gunicorn [app]:app
[2018-07-18 13:27:56 -0400] [10080] [INFO] Starting gunicorn 19.9.0
[2018-07-18 13:27:56 -0400] [10080] [INFO] Listening at: http://127.0.0.1:8000 (10080)
[2018-07-18 13:27:56 -0400] [10080] [INFO] Using worker: sync
[2018-07-18 13:27:56 -0400] [10083] [INFO] Booting worker with pid: 10083
usage: gunicorn [-h] [-c]
gunicorn: error: unrecognized arguments: [app]:app
[2018-07-18 13:27:56 -0400] [10083] [INFO] Worker exiting (pid: 10083)
[2018-07-18 13:27:56 -0400] [10085] …
Run Code Online (Sandbox Code Playgroud)

python virtualenv gunicorn

1
推荐指数
1
解决办法
2725
查看次数

NeoVim/Vim 显示错误的 Python 版本

我曾经3.8-dev安装过Python pyenv,但后来我卸载了这个版本。现在我只3.7.5安装在我的机器上。pyenv versions结果:

在此输入图像描述

现在我相信全球默认也是3.7.5。然而,当我使用 NeoVim 或 Vim 打开 python 文件时,它仍然从底部栏显示,Python 3.8.1 64-bit尽管我相信我在这台机器上根本没有该版本。知道为什么会发生这种情况吗?我相信这是因为 Vim 仍然认为我有该3.8.1版本,但不知道如何修复它。谢谢!

在此输入图像描述

Vim v8.1
NeoVim v0.4.3

python vim virtualenv neovim pyenv

1
推荐指数
1
解决办法
2684
查看次数