在virtualenv中,我如何忽略no-site-packages单个包的规则?
一些背景:我使用virtualenv进行部署,但是自从我使用以来需要更长的时间lxml.每次重新安装新的virtualenv时,编译此过程最多需要15分钟.我可以为lxml全局网站包制作某种例外并使用它吗?有没有比将它复制到新的virtualenv更安全/更可靠的选择?
假设您编写了一个Python shell脚本.它可能会从这样的事情开始:
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
问题是,如果你经常使用virtualenv这个电话是完全错误的.你真的希望这个脚本调用virtualenv的python二进制文件,如果它在这个环境中,/usr/bin/python/否则.就像你的shell决定,当你写python一个shell命令.
您如何编写您的#!生产线以满足此要求?
我正在尝试构建一个在Amazon EC2上的virtualenv中使用python27的virtualenv.对网络的研究表明,弄乱预装的Python26是一个坏主意,所以我想在一个安全的虚拟环境中工作.以下是从EC2上的新实例开始的所有命令
sudo easy_install python27
sudo easy_install virtualenv
yum groupinstall "Development Tools"
mkdir virt_env
virtualenv -p python27 virt_env/py27
Run Code Online (Sandbox Code Playgroud)
而这一切似乎都很有效.当我激活我的virtualenv Python27是默认值,在它之外Python26是默认值.到现在为止还挺好.接下来我在virtualenv中尝试了iPython
source virt_env/py27/bin/activate
pip install ipython
Run Code Online (Sandbox Code Playgroud)
这很好用,再次ipython在virtualenv中可用,并且在它之外不可用.然而,当我在virtualenv中安装numpy时,我得到了以下内容:
pip install numpy
// Lots of output that I won't paste all of it, main error below
SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.
Run Code Online (Sandbox Code Playgroud)
不知道我做错了什么因为我总是以这种方式在virtualenv上安装numpy.非常感谢任何帮助
编辑:我也尝试过使用:
sudo yum install python-devel
Run Code Online (Sandbox Code Playgroud)
在virtualenv.仍然没有帮助
当我使用'el.get'来安装'jedi'时,我收到消息:
'/ bin/sh:virtualenv:找不到命令make:* [env/bin/activate]错误127'
但我已经安装了'virtualenv',当我在终端输入'virtualenv'时,我实际上得到了'virtualenv'用法的描述.
另一方面,当我在emacs的shell模式中尝试'virtualenv'命令时,它告诉我无法找到这样的命令.我认为这就是bug的所在.
对这里发生了什么有什么想法吗?
我安装了64位Python(2.7.5)C:\Python27和32位Python C:\Python27_32.
我想使用virtualenv来设置一个32位的虚拟环境,当我需要使用32位Python时,我可以切换到这个环境.一旦设置了该环境,我计划编辑该bin\activate文件以更改所有必需的路径以指向32位目录.
但是,当我尝试创建虚拟环境时,我收到以下错误:
> virtualenv --python=C:\Python27_32\python.exe foo
Running virtualenv with interpreter C:\Python27_32\python.exe
PYTHONHOME is set. You *must* activate the virtualenv before using it
New python executable in foo\Scripts\python.exe
Installing setuptools...............
Complete output from command C:\Users\<user>\Drop...o\Scripts\python.exe -c "#!python
\"\"\"Bootstra...sys.argv[1:])
" C:\Python27\lib\site...ols-0.6c11-py2.7.egg:
Traceback (most recent call last):
File "<string>", line 278, in <module>
File "<string>", line 238, in main
File "build/bdist.linux-i686/egg/setuptools/command/easy_install.py", line 21, in <module>
File "build/bdist.linux-i686/egg/setuptools/package_index.py", line 2, in <module>
File "C:\Python27\Lib\urllib2.py", line 94, in …Run Code Online (Sandbox Code Playgroud) 这可能有什么问题?
user@linux> virtualenv foobar
....
error: could not create '/lib/python2.7': Permission denied
----------------------------------------
...Installing Setuptools...done.
Traceback (most recent call last):
File "/usr/bin/virtualenv", line 9, in <module>
load_entry_point('virtualenv==1.10.1', 'console_scripts', 'virtualenv')()
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 821, in main
symlink=options.symlink)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 961, in create_environment
install_sdist('Setuptools', 'setuptools-*.tar.gz', py_executable, search_dirs)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 932, in install_sdist
filter_stdout=filter_install_output)
File "/usr/lib/python2.7/site-packages/virtualenv.py", line 899, in call_subprocess
% (cmd_desc, proc.returncode))
OSError: Command /home/modwork_guf_dfj/foobar/bin/python setup.py install --single-version-externally-managed --record record failed with error code 1
Run Code Online (Sandbox Code Playgroud)
virtualenv --version 1.10.1
我已经设置了我的Ubuntu 12.04系统,这样我就可以使用Python 2.7或Python 3.3创建virtualenv,并运行IPython Notebook.问题是,我不知道我对我的系统做了什么让这成为可能.我试图帮助其他人以相同的方式设置他们的系统,我不确定我缺少什么包.
在我的系统上,我可以运行以下命令,以便在virtualenv中运行IPython Notebook:
~$ mkdir test_ipython3.3
~$ cd test_ipython3.3
~/test_ipython3.3$ virtualenv -p python3.3 venv
~/test_ipython3.3$ source venv/bin/activate
(venv)~/test_ipython3.3$ pip install ipython[all]==1.1.0
Run Code Online (Sandbox Code Playgroud)
我可以使用相同的命令集virtualenv -p python2.7 venv,并且除了运行Python 2.7之外,它具有几乎相同的环境.
我试图在virtualbox设置上安装12.04,这样我也可以成功运行这些命令,但是我一直都在失败.在virtualbox中构建一个干净的Ubuntu 12.04计算机后,我执行以下操作:
# Update machine:
sudo apt-get update
sudo apt-get dist-upgrade
# Install Python 3.3:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:fkrull/deadsnakes
sudo apt-get update
sudo apt-get install python3.3
# Install virtualenv
sudo apt-get install python-pip
sudo pip install pip --upgrade
sudo pip install virtualenv
# Install necessary …Run Code Online (Sandbox Code Playgroud) 我无法通过virtualenv(和virtualenvwrapper)获取apache来为我的网站服务.我尝试了这里的演练.值得注意的是,我使用的是Ubuntu Server v13.10,我读过它还没有对Apache v2.2的本机支持,因此在演练中我无法安装apache2.2-common.但是,我不认为这是问题,因为apache错误日志表示存在权限问题.
在我的设置中,虚拟环境位于非root用户的主目录中,而apache服务器以root身份运行(我认为这是正常的).我试图跟踪权限使用namei,我已确保chmod +rw路径为root.有任何想法吗?
[Thu Mar 06 14:16:37.639031 2014] [mpm_event:notice] [pid 8771:tid 140338386122624] AH00489: Apache/2.4.6 (Ubuntu) mod_wsgi/3.4 Python/2.7.5+ configured -- resuming normal operations
[Thu Mar 06 14:16:37.639144 2014] [core:notice] [pid 8771:tid 140338386122624] AH00094: Command line: '/usr/sbin/apache2'
[Thu Mar 06 14:16:53.456622 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] mod_wsgi (pid=8775): Target WSGI script '/var/www/www.mysite.org/index.wsgi' cannot be loaded as Python module.
[Thu Mar 06 14:16:53.456735 2014] [:error] [pid 8775:tid 140338291197696] [client 192.168.XXX.XXX:50742] …Run Code Online (Sandbox Code Playgroud) 我在virtualenv上的一个小型Django项目上工作,该项目需要在github上共享,然后从那里克隆并安装在Apache服务器上。我以前从未将virtualenv与github结合使用。通常,我会在与manage.py文件相同的级别上设置本地git存储库。但是,在该级别上我确实不需要几个虚拟环境目录(bin,lib,include等)以及所需的应用程序和模板目录等。
那么,在这种情况下,创建github存储库的方法是什么。有没有一种方法可以选择并过滤出virtualenv的东西。
我安装了virtualenv,激活它,并安装了烧瓶.所以我有三个文件夹:Include,Scripts和Lib.最后一个文件夹包含site-packages文件夹,其中包含flask文件夹.
如果我将app.py(简单的Hello World应用程序)放在"site-packages"文件夹中,我不会收到此错误.但是如果放出这三个文件夹,但在我的flask_environment里面,我得到了这个错误.
这里出了什么事吗?
错误:
Traceback (most recent call last):
File "C:\Flask\flask_env\app.py", line 3, in <module>
from flask import Flask
ImportError: No module named flask
Run Code Online (Sandbox Code Playgroud) virtualenv ×10
python ×7
django ×2
amazon-ec2 ×1
apache ×1
emacs ×1
flask ×1
git ×1
ipython ×1
jedi ×1
lxml ×1
numpy ×1
python-2.7 ×1
python-3.x ×1
shell ×1
ubuntu ×1