标签: virtualenv

使virtualenv从您的全局站点包继承特定的包

我正在寻找一种方法来制作一个virtualenv,其中只包含基本python安装的一些库(我选择).

更具体一点,我正在尝试在virtualenv的创建过程中将matplotlib导入virtualenv.它无法通过pip或easy_install高效安装,因为它错过了一些fortran编译器库.我到目前为止的方式是手动复制

/usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/
Run Code Online (Sandbox Code Playgroud)

但是这可以防止yolk注册manully导入的链接(打印virtualenv中所有当前可用的库).

那么,有没有办法做一个选择性的变体

virtualenv --system-site-packages
Run Code Online (Sandbox Code Playgroud)

python virtualenv

190
推荐指数
2
解决办法
8万
查看次数

Conda是否取代了virtualenv的需求?

我最近发现康达我是有安装SciPy的麻烦后,确切的说是我开发一个应用程序的Heroku.

使用Conda,您可以创建与virtualenv非常相似的环境.我的问题是:

  1. 如果我使用Conda它会取代virtualenv的需要吗?如果没有,我该如何将两者结合使用?我是在Conda中安装virtualenv,还是在virtualenv中安装Conda?
  2. 我还需要使用pip吗?如果是这样,我还能在隔离环境中安装带有pip的软件包吗?

python virtualenv scipy anaconda conda

184
推荐指数
8
解决办法
6万
查看次数

如何卸载使用pip install --user安装的软件包

--userpip 有一个选项可以为每个用户安装一个Python包:

pip install --user [python-package-name]
Run Code Online (Sandbox Code Playgroud)

我使用此选项在我没有root访问权限的服务器上安装软件包.我现在需要的是卸载当前用户的已安装软件包.我试图执行这个命令:

pip uninstall --user [python-package-name]
Run Code Online (Sandbox Code Playgroud)

但我得到了:

no such option: --user
Run Code Online (Sandbox Code Playgroud)

pip install --user除了手动查找和删除软件包之外,如何卸载我安装的软件包?

我发现了这篇文章

pip无法从每个用户的site-packages目录中卸载

其中描述了不支持从用户目录卸载软件包.根据文章,如果它是正确实施然后与

pip uninstall [package-name]
Run Code Online (Sandbox Code Playgroud)

安装的软件包也将在用户目录中搜索.但问题仍然存在.如果在系统范围内和每个用户安装相同的软件包怎么办?如果有人需要定位特定的用户目录怎么办?

python pip virtualenv python-3.x

181
推荐指数
5
解决办法
32万
查看次数

在virtualenv中升级python

有没有办法升级virtualenv中使用的python版本(例如,如果出现错误修复版本)?

我可以pip freeze --local > requirements.txt,然后删除目录pip install -r requirements.txt,但这需要大量重新安装大型库,例如,numpy我使用了很多.

升级时可以看出这是一个优势,例如2.6 - > 2.7,但是2.7.x - > 2.7.y呢?

python pip version virtualenv

177
推荐指数
8
解决办法
15万
查看次数

找不到Virtualenv命令

virtualenv尽管做了各种尝试,我还是无法上班.我virtualenv使用以下命令在MAC OS X上安装:

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

并且还加入了PATH我的.bash_profile.每次我尝试运行该virtualenv命令时,它返回:

-bash: virtualenv: command not found
Run Code Online (Sandbox Code Playgroud)

每次我跑pip install virtualenv,它返回:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

我明白在mac中,virtualenv应该正确安装

/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

virtualenv确实安装/usr/local/bin,但每当我试图运行virtualenv命令,该命令没有找到.我也试过virtualenv在目录中运行命令/usr/local/bin,它给了我相同的结果:

-bash: virtualenv: command not found
Run Code Online (Sandbox Code Playgroud)

这些是我添加到.bash_profile中的PATH

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages
Run Code Online (Sandbox Code Playgroud)

有没有解决方法呢?为什么会这样?

python macos virtualenv

162
推荐指数
19
解决办法
18万
查看次数

virtualenv和pyenv之间有什么关系?

我最近学会了如何在我的工作流程中使用virtualenv和virtualenvwrapper,但我在一些指南中看到了pyenv,但我似乎无法理解pyenv是什么以及它与virtualenv的不同/相似之处.pyenv是virtualenv或免费工具的更好/更新的替代品吗?如果后者有什么不同的做法,那么两者(以及virtualenvwrapper,如果适用)如何协同工作?

python virtualenv virtualenvwrapper pyenv

161
推荐指数
2
解决办法
4万
查看次数

Ruby相当于virtualenv?

是否有类似于Python实用程序virtualenv的东西

基本上它允许您将Python包安装到沙盒环境中,所以 easy_install django不会进入系统范围的site-packages目录,它将进入virtualenv创建的目录.

例如:

$ virtualenv test
New python executable in test/bin/python
Installing setuptools...cd .........done.
$ cd test/
$ source bin/activate
(test)$ easy_install tvnamer
Searching for tvnamer
Best match: tvnamer 0.5.1
Processing tvnamer-0.5.1-py2.5.egg
Adding tvnamer 0.5.1 to easy-install.pth file
Installing tvnamer script to /Users/dbr/test/bin

Using /Library/Python/2.5/site-packages/tvnamer-0.5.1-py2.5.egg
Processing dependencies for tvnamer
Finished processing dependencies for tvnamer
(test)$ which tvnamer 
/Users/dbr/test/bin/tvnamer
Run Code Online (Sandbox Code Playgroud)

RubyGems有这样的东西吗?

ruby python virtualenv

157
推荐指数
6
解决办法
5万
查看次数

重命名virtualenv文件夹而不会破坏它

我已经创建了文件夹并在其中初始化了virtualenv实例.

$ mkdir myproject
$ cd myproject
$ virtualenv env
Run Code Online (Sandbox Code Playgroud)

当我运行时(env)$ pip freeze,它会显示已安装的软件包.

现在我想重命名myproject/project/.

$ mv myproject/ project/
Run Code Online (Sandbox Code Playgroud)

但是,现在我跑的时候

$ . env/bin/activate
(env)$ pip freeze
Run Code Online (Sandbox Code Playgroud)

它说pip没有安装.如何在不破坏环境的情况下重命名项目文件夹?

python ubuntu pip virtualenv

157
推荐指数
7
解决办法
6万
查看次数

在bash脚本中使用source时出现'source:not found'错误

我正在尝试编写(我认为会是)一个简单的bash脚本,它将:

  1. 运行virtualenv以1美元创建一个新环境
  2. 激活虚拟环境
  3. 做更多的东西(安装django,将django-admin.py添加到virtualenv的路径等)

第1步工作得很好,但我似乎无法激活virtualenv.对于那些不熟悉virtualenv的人,它会创建一个activate激活虚拟环境的文件.在CLI中,您可以使用它运行它source

source $env_name/bin/activate
Run Code Online (Sandbox Code Playgroud)

其中$ env_name显然是安装虚拟环境的目录的名称.

在我的脚本中,在创建虚拟环境之后,我将激活脚本的路径存储如下:

activate="`pwd`/$ENV_NAME/bin/activate"
Run Code Online (Sandbox Code Playgroud)

但是当我打电话时source "$activate",我得到了这个:

/home/clawlor/bin/scripts/djangoenv: 20: source: not found
Run Code Online (Sandbox Code Playgroud)

我知道它$activate包含激活脚本的正确路径,实际上我甚至在调用之前测试文件是否在那里source.但source它本身似乎无法找到它.我也尝试在CLI中手动运行所有步骤,其中一切正常.

在我的研究中,我发现了这个脚本,它与我想要的类似,但也做了许多其他我不需要的事情,比如将所有虚拟环境存储在〜/ .virtualenv目录中(或者其他任何内容) $ WORKON_HOME).但在我看来,他正在创造通往我的道路activate,并source "$activate"以与我相同的方式打电话.

这是完整的脚本:

#!/bin/sh

PYTHON_PATH=~/bin/python-2.6.1/bin/python

if [ $# = 1 ]
then
    ENV_NAME="$1"
    virtualenv -p $PYTHON_PATH --no-site-packages $ENV_NAME
    activate="`pwd`/$ENV_NAME/bin/activate"

    if [ ! -f "$activate" ]
    then
        echo "ERROR: activate not found at $activate"
        return 1
    fi

    source "$activate"
else
    echo 'Usage: …
Run Code Online (Sandbox Code Playgroud)

bash virtualenv

150
推荐指数
3
解决办法
13万
查看次数

在virtualenv中设置环境变量

我有一个Heroku项目,它使用环境变量来获取其配置,但我使用virtualenv首先在本地测试我的应用程序.

有没有办法在virtualenv中设置远程机器上定义的环境变量?

python heroku environment-variables virtualenv

149
推荐指数
9
解决办法
11万
查看次数