Ошибка virtualenvwrapper.sh при запуске терминала - PullRequest
15 голосов
/ 05 октября 2011

Когда я начинаю изучать программирование на 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 64bit GNOME.

Есть ли способ устранить эту ошибку, которую я вижу в терминале?

Я пробовал поиск через Google, но ни одиниз них, кажется, решить эту проблему.

Заранее спасибо.

=== Редактировать ===

Это то, что написано в / home / user /.bashrc

source /usr/local/bin/virtualenvwrapper.sh 2> /dev/null
VIRTUALENVWRAPPER_LOG_DIR=/tmp
export VIRTUALENVWRAPPER_LOG_DIR

Пожалуйста, помогите: (

Ответы [ 7 ]

16 голосов
/ 11 ноября 2012

В соответствии с этим , похоже, что это ошибка с пакетом APT в Debian / Ubuntu / Mint.

Сначала я установил virtualenvwrapper через APT, затем удалил его и установил егочерез пип.

apt-get install virtualenvwrapper
apt-get remove virtualenvwrapper
pip install virtualenvwrapper

Пакет APT добавил файл /etc/bash_completion.d/virtualenvwrapper, но не удалил его.Этот файл вызывает проблемы.

Рекомендуемое решение - удалить этот файл, и ошибки перестают появляться.(Как ни странно, простого переименования файла было недостаточно).

6 голосов
/ 22 августа 2012

Для тех, кто пришел позже, у меня была та же проблема на Ubuntu 12, и я решил ее следующим образом:

  1. Переключиться на правильного пользователя:

    su username
    
  2. Убедитесь, что в переменной WORKON_HOME указан путь, которым вы хотите (по умолчанию ~ / .virtualenv)

    WORKON_HOME=$HOME/.virtualenv
    
  3. Затем добавьте эти две строки перед источникомкоманда:

    export VIRTUALENVWRAPPER_LOG_DIR="$WORKON_HOME"
    export VIRTUALENVWRAPPER_HOOK_DIR="$WORKON_HOME"
    
  4. Затем сохраните и повторно введите ваш bashrc:

    source ~/.bashrc
    
2 голосов
/ 26 марта 2018

У меня были похожие проблемы. Я удалил все настройки в ~ / .bashrc, связанные с virtualenv, например:

 # virtualenv
 #export WORKON_HOME=~/virtualenvs
 #source /usr/local/bin/virtualenvwrapper.sh

Это исправило ошибки.

1 голос
/ 19 сентября 2013

Для полного удаления в Debian удалите следующее:

/usr/local/bin/virtualenvwrapper*
/etc/bash_completion.d/virtualenvwrapper

Это сработало для меня

Также удаляйте файлы из dist-пакетов Python (зависит от версии дистрибутива и Python)

0 голосов
/ 09 ноября 2013

Попробуйте использовать команду экспорта следующим образом:

$export VIRTUALENVWRAPPER_LOG_DIR = "/path/to/the/hook.log"

В моем случае файл hook.log был создан по тому же пути, что и моя конфигурация virtualenvwrapper, где в /home/my_user/.virtualenvs, поэтомучто я сделал, чтобы экспортировать переменную, как это

$export VIRTUALENVWRAPPER_LOG_DIR = "./"
0 голосов
/ 17 августа 2012

У меня была похожая проблема при попытке заставить его работать на Debian. Мне нужно было запустить его как пользователь, отличный от пользователя X, но он использовал каталог ~/.virtualenvs пользователя X для WORKON_HOME, VIRTUALENVWRAPPER_LOG_DIR и VIRTUALENVWRAPPER_HOOK_DIR.

Теперь работает, когда я установил эти переменные в правильный каталог в ~/.bashrc.

0 голосов
/ 05 октября 2011

Вам необходимо установить переменную окружения VIRTUALENVWRAPPER_LOG_DIR. Добавьте это к вашему .bashrc файлу:

VIRTUALENVWRAPPER_LOG_DIR=/tmp
export VIRTUALENVWRAPPER_LOG_DIR
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...