当我开始学习Python编程时,我通过以下命令安装了virtualenvwrapper:
# Install distribute: http://pypi.python.org/pypi/distribute
wget http://python-distribute.org/distribute_setup.py
sudo python distribute_setup.py
# Install pip http://pypi.python.org/pypi/pip
sudo easy_install pip
# Install virtualenv
sudo pip install virtualenv
# Install virtualenvwrapper
sudo pip install --upgrade virtualenvwrapper
virtualenvwrapper.sh
echo source `which virtualenvwrapper.sh` >> $HOME/.bashrc
# IMPORTANT
# Go to the working directory
# Start a working environment virtualenv
mkvirtualenv <working environment name>
# Install all the requirements for the working environment
pip -E $VIRTUAL_ENV install -r requirements.txt
每次打开终端(通过guake)我都会收到此错误
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/virtualenvwrapper/hook_loader.py", line 72, in main
backupCount=1,
File "/usr/lib/python2.6/logging/handlers.py", line 112, in __init__
BaseRotatingHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.6/logging/handlers.py", line 64, in __init__
logging.FileHandler.__init__(self, filename, mode, encoding, delay)
File "/usr/lib/python2.6/logging/__init__.py", line 827, in __init__
StreamHandler.__init__(self, self._open())
File "/usr/lib/python2.6/logging/__init__.py", line 846, in _open
stream = open(self.baseFilename, self.mode)
IOError: [Errno 2] No such file or directory: '/home/ahim/$VIRTUALENVWRAPPER_LOG_DIR/hook.log'
virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly.
我正在使用Linux Mint 10 64位GNOME。
有没有办法解决我在终端上看到的这个错误?
我尝试通过谷歌搜索,但似乎没有一个能解决这个问题。
提前谢谢。
===编辑===
这是在/home/user/.bashrc
中编写的source /usr/local/bin/virtualenvwrapper.sh 2> /dev/null
VIRTUALENVWRAPPER_LOG_DIR=/tmp
export VIRTUALENVWRAPPER_LOG_DIR
请帮助:(
答案 0 :(得分:16)
According to this,Debian / Ubuntu / Mint上的APT包似乎有误。
我先通过APT安装了virtualenvwrapper,然后将其删除并通过pip安装。
apt-get install virtualenvwrapper
apt-get remove virtualenvwrapper
pip install virtualenvwrapper
APT包已添加文件/etc/bash_completion.d/virtualenvwrapper
但未将其删除。这是导致问题的文件。
建议的解决方案是删除此文件,并且错误停止显示。 (奇怪的是,简单地重命名文件是不够的。)
答案 1 :(得分:6)
对于那些之后来的人,我在Ubuntu 12上遇到了同样的问题,并以这种方式解决了:
切换到正确的用户:
su username
确保您的WORKON_HOME变量设置为您希望的路径(默认为〜/ .virtualenv)
WORKON_HOME=$HOME/.virtualenv
然后在源命令之前添加这两行:
export VIRTUALENVWRAPPER_LOG_DIR="$WORKON_HOME"
export VIRTUALENVWRAPPER_HOOK_DIR="$WORKON_HOME"
然后保存并重新发送您的bashrc:
source ~/.bashrc
答案 2 :(得分:2)
我有类似的问题。我删除了与virtualenv相关的〜/ .bashrc中的所有设置,例如:
# virtualenv
#export WORKON_HOME=~/virtualenvs
#source /usr/local/bin/virtualenvwrapper.sh
修正了错误。
答案 3 :(得分:1)
要在debian下完全删除,请删除以下内容:
/usr/local/bin/virtualenvwrapper*
/etc/bash_completion.d/virtualenvwrapper
这对我有用
还删除python的 dist-packages 中的文件(取决于发行版和python版本)
答案 4 :(得分:0)
您需要设置VIRTUALENVWRAPPER_LOG_DIR
环境变量。将其添加到您的.bashrc
文件中:
VIRTUALENVWRAPPER_LOG_DIR=/tmp
export VIRTUALENVWRAPPER_LOG_DIR
答案 5 :(得分:0)
我试图让它在Debian上运行时遇到了类似的问题。我需要以X用户以外的用户身份运行它,但它使用了~/.virtualenvs
,WORKON_HOME
和VIRTUALENVWRAPPER_LOG_DIR
的X用户的VIRTUALENVWRAPPER_HOOK_DIR
目录。
现在我可以将这些变量设置为~/.bashrc
中的正确目录。
答案 6 :(得分:0)
尝试并使用如下导出命令:
$export VIRTUALENVWRAPPER_LOG_DIR = "/path/to/the/hook.log"
就我而言,hook.log是在我的virtualenvwrapper在/home/my_user/.virtualenvs中配置的路径中创建的,所以我所做的就是导出这样的变量
$export VIRTUALENVWRAPPER_LOG_DIR = "./"