我正在关注一个名为Starting a Django 1.4 Project the Right Way的教程,该教程提供了如何使用virtualenv和virtualenvwrapper等方面的指导.
有一节内容如下:
如果你正在使用pip来安装软件包(我不明白你为什么不这样做),你可以通过简单地安装后者来获得virtualenv和virtualenvwrapper.
Run Code Online (Sandbox Code Playgroud)$ pip install virtualenvwrapper安装完成后,将以下行添加到shell的启动文件(.zshrc,.bashrc,.profile等)中.
Run Code Online (Sandbox Code Playgroud)export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/directory-you-do-development-in source /usr/local/bin/virtualenvwrapper.sh重新加载你的启动文件(例如source .zshrc),你已经准备好了.
我正在运行Mac OSX,并且不太了解我在终端周围的方式.作者究竟是什么意思shell's start-up file (.zshrc, .bashrc, .profile, etc)?我在哪里可以找到这个文件,以便我可以添加这三行?
另外,他的意思是reload your start up file (e.g. source .zshrc)什么?
我将非常感谢OSX特有的详细回复.
我正在使用带有django项目的virtualenvwrapper,该项目具有自动编写一些配置文件的管理任务,因此用户只需要
./manage.py generate_configuration > much_nice.conf
Run Code Online (Sandbox Code Playgroud)
然后将文件移动到其他位置.其中一个生成的配置文件是启动芹菜工作者的supervisord的任务.我得到的问题是,我不知道如何输出芹菜可执行文件的路径是bin文件夹内的virtualenv中的.基本上,我想要输出命令
which celery
Run Code Online (Sandbox Code Playgroud)
一个选项是使用sys.executable,获取文件夹(这似乎是binvirtualenv 的文件夹),就是这样......但我不确定.
virtualenv有没有任何方法来获取路径本身?
我正在运行virtualenv卷饼并得到一个错误,即有太多级别的符号链接.我不知道这意味着什么.
mkvirtualenv --python /usr/local/bin/Python3 mantis
Run Code Online (Sandbox Code Playgroud)
错误:
Running virtualenv with interpreter /usr/local/bin/Python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.4'
New python executable in mantis/bin/Python3
Also creating executable in mantis/bin/python
Traceback (most recent call last):
File "/Users/croberts/.venvburrito/lib/python2.7/site-packages/virtualenv.py", line 2352, in <module>
main()
File "/Users/croberts/.venvburrito/lib/python2.7/site-packages/virtualenv.py", line 825, in main
symlink=options.symlink)
File "/Users/croberts/.venvburrito/lib/python2.7/site-packages/virtualenv.py", line 985, in create_environment
site_packages=site_packages, clear=clear, symlink=symlink))
File "/Users/croberts/.venvburrito/lib/python2.7/site-packages/virtualenv.py", line 1439, in install_python
raise e
File "/Users/croberts/.venvburrito/lib/python2.7/site-packages/virtualenv.py", line 1431, in install_python
stdout=subprocess.PIPE)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/subprocess.py", line 859, in __init__
restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/subprocess.py", …Run Code Online (Sandbox Code Playgroud) 我需要使用不同的pip配置文件,具体取决于我目前正在处理的项目.每个项目都来自一个单独的pypi repo,并且在我的.pip/pip.conf文件中需要自己的块
[global]
timeout = 60
index-url = <my_custom_pypi_repo>
Run Code Online (Sandbox Code Playgroud)
有没有办法在virtualenv特定的基础上提供pip.conf文件?
理想情况下,当我跑
workon env1
pip install env1_package
Run Code Online (Sandbox Code Playgroud)
它只会尝试从env1配置文件下载
和env2相似我最好跑的时候
workon env2
pip install env2_package
Run Code Online (Sandbox Code Playgroud)
我希望它不要从env1 pypi服务器请求这个包.
我在ubuntu 14.04下使用virtualenv,virtualenvwrapper运行python 2.7.6.现在我从源代码安装了python 2.7.9.新的python解释器现在位于下面,/usr/local/bin但似乎旧的解释器也位于下面/usr/bin.
如果我运行python shell它会显示python2.7.9.但如果我使用mkvirtualenv venv我收到以下消息.
在venv/bin/python中新的python可执行文件
安装setuptools,pip ...完成.
Blockquote/usr/local/bin/python:没有名为virtualenvwrapper的模块
old .bashrc(使用python 2.7.6解释器的工作配置)
# virtualenv-wrappper path
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
新的.bashrc(有失败配置)
# virtualenv-wrappper path
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
使用新的.baschrcI键入source .bashrc并获得以下输出.
/ usr/local/bin/python:没有名为virtualenvwrapper virtualenvwrapper.sh的模块:运行初始化挂钩时出现问题.
如果Python无法导入virtualenvwrapper.hook_loader模块,请检查是否已为VIRTUALENVWRAPPER_PYTHON =/usr/local/bin/python安装了virtualenvwrapper,并且正确设置了PATH.
我也尝试过which -a python:
输出:
/usr/local/bin/python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
我想在virtualenv和virtualenvwrapper中使用python 2.7.9.所以我要做的就是让它运转起来?
如何控制pip新创建的virtualenv中使用的版本?我相信我已经从操作系统中消除了所有其他版本的pip,但仍然mkvirtualenv从某个地方获得了一个pip-1.5!我希望它在virtualenv中使用pip 1.4.1.
__PRE__
如何安装和配置virtualenv和virtualenvwrapperfor Pythonon OSX?
当我开发和测试我的项目时,我曾经使用virtualenvwrapper来管理环境并运行它:
workon myproject
python myproject.py
Run Code Online (Sandbox Code Playgroud)
当然,一旦我在正确的virtualenv,我使用正确版本的Python,以及其他相应的库来运行我的项目.
现在,我想使用Supervisord来管理同一个项目,因为它已准备好部署.问题是在执行脚本之前告诉Supervisord激活正确的virtualenv的正确方法是什么?我是否需要编写一个单独的bash脚本来执行此操作,并在Supervisord配置文件的命令字段中调用该脚本?
有没有办法在鱼壳里virtualenvwrapper工作?尝试运行virtualenvwrapper命令时workon,我收到以下错误:
fish: Unknown command 'workon'
Run Code Online (Sandbox Code Playgroud)
当我跑
source /usr/local/bin/virtualenvwrapper.sh
Run Code Online (Sandbox Code Playgroud)
我从一开始就遇到很长的错误:
fish: Expected a command name, got token of type 'Run job in background'. Did you mean 'COMMAND; and COMMAND'? See the help section for the 'and' builtin command by typing 'help and'.
/usr/local/bin/virtualenvwrapper.sh (line 67): if [ "$OS" = "Windows_NT" ] && [ "$MSYSTEM" = "MINGW32" ]
Run Code Online (Sandbox Code Playgroud)
并以:结尾
source: Error while reading file '/usr/local/bin/virtualenvwrapper.sh'
Run Code Online (Sandbox Code Playgroud) 这不是这个问题的重复.
我已经知道了virtualenv和virtualenvwrapper和pip,但它们似乎并不完全符合我的要求.
我正在寻找一种方法,我不仅可以安装多个版本的Python,还可以安装多个版本的Django(例如),混合匹配python的"活动"版本和Django的"活动"版本.
例如,我有Django 1.0,1.1和1.2,而trunk是"活跃的".我希望能够在Python 2.5,2.6和2.7上测试它.然后让Django 1.2"活动"并再次在我的所有Python版本上测试它.
我可以看到我可以通过使用virtualenv获得该示例,但是我说我有5个版本的Django应用程序,我想测试Python 2.5,2.6和2.7以及Django版本1.0,1.1的每个组合,以及1.2.此时,afaik,我将需要创建的虚拟环境的数量变得难以管理.
我想能够说,让Python版本X"活跃",使Django版本X"活跃",并使MyApp版本X"活跃",而不必处理创建和切换virtualenvs(我绝对不会'我想做一堆bootstrap脚本).
我正在寻找的东西是否存在于Python中,或者是否有一些我缺少关于virtualenv,virtualenvwrapper和pip的东西,它们已经可以优雅地处理这个问题了?
virtualenv ×9
python ×6
pip ×3
macos ×2
shell ×2
deployment ×1
django ×1
fish ×1
python-3.x ×1
python-wheel ×1
supervisord ×1
terminal ×1