ошибка оболочки bash: «нет такого файла или каталога»


17

Я пытаюсь установить упаковщик Virtualenv на Ubuntu 14.04. Но всякий раз, когда я запускаю терминал, я получаю сообщение об ошибке bash:

/usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh: нет такого файла или каталога.

Я также проверил скрипт bashrc с помощью gedit ~/.bashrc, но такой строки нет. Кто-нибудь знает, где я не прав?


Вы проверяли другие файлы конфигурации, такие как .bash_profileи общесистемные версии /etc/?

Да, я уже проверил .bash_profile, но он пуст, и я не знаю, как проверить / etc /.
Абхишек Сингх

Там должны быть не скрытые глобальные файлы как /etc/bash.bashrc.

Взгляните на этот источник chrisstrelioff.ws/sandbox/2014/09/04/…, который может помочь вам с некоторыми идеями.
vembutech

@vembutech Я проверил вышеуказанную ссылку, но это не помогло. Я уже добавил путь к моему virtualenvwrapper.sh в свой bashrc. Но я не нашел пути, подобного описанному выше в моем вопросе. Всякий раз, когда я пробовал источник ~ / .bashrc, он выдает вышеупомянутую ошибку
Абхишек Сингх

Ответы:


20

У меня просто была такая же проблема на Linux Mint.

Следующий файл вызывал проблему: /etc/bash_completion.d/virtualenvwrapper

Я сделал резервную копию (на всякий случай) и удалил ее, и теперь все работает нормально.


1
Работал на меня (+1).
FractalSpace

Работал для меня на Ubuntu (+1)
светлая песня

16

В моем случае я ранее установил virtualenvwrapper с помощью, apt-get install virtualenvwrapperа затем удалил его с помощью apt-get remove virtualenvwrapper, что оставило файл «конфигурации» /etc/bash_completion.d/virtualenvwrapperпозади. Это определение завершения bash было получено от bash (оно не имело никакого отношения к моему .bashrc) и вызвало сообщение об ошибке.

Решение было запустить:

sudo apt-get purge virtualenvwrapper

Который удалил все файлы, связанные с virtualenvwrapper. Причина, по которой я удалил ее, заключалась в том, чтобы вместо этого использовать версию pip (более современную), которую можно установить глобально, используя:

sudo pip install virtualenvwrapper

У меня была эта проблема в возвышенном тексте 3 на OSX при сборке скрипта, и для ее решения я просто установил ее через pip, как указано в вашей команде выше. Спасибо
Джеймс Кэмпбелл

Работал для меня в Ubuntu 16.04
Юха Унтинен

5

Следуя этим инструкциям , я обнаружил, что ошибка возникла при использовании сценария bash virtualenvwrapper, а именно:

source /usr/local/bin/virtualenvwrapper.sh

Скрипт ссылается на файл, /etc/bash_completion.d/virtualenvwrapperкак указано в arcticfeather.

Откройте скрипт, используя следующую команду:

sudo nano /etc/bash_completion.d/virtualenvwrapper

Это где ссылка на несуществующий файл. Просто замените /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.shна, /usr/local/bin/virtualenvwrapper_lazy.shи вам будет хорошо идти!


1
Не работал для меня
FractalSpace

1

Если ни один из ответов не работает так, как у меня, просто создайте пустой файл в том месте, где выдается ошибка, и отправьте ей сообщение.

В случае ОП:

sudo nano /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh

и писать:

#!/bin/bash

Сохраните его и попробуйте снова открыть терминал.


1

Вы можете установить Extension to virtualenv для управления несколькими виртуальными средами Python ( virtualenvwrapper ) в Ubuntu 14.04 из Ubuntu Software Center или из терминала с помощью следующей команды:

sudo apt install virtualenvwrapper
gedit .bashrc

Добавьте следующую строку в конец .bashrc.

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Сохраните изменения в .bashrc и закройте gedit. Поставьте ваш .bashrc, чтобы изменения вступили в силу.

cd 
source .bashrc

Не работал для меня
FractalSpace

0

Я надеюсь, что это поможет кому-то, в моем случае я пытался создать virtualenv, находясь внутри экрана ( screen -S что угодно ), решением было закрыть экран и снова выполнить команду virtualenv, находясь снаружи.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.