помилка оболонки 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, воно видає вищезгадану помилку
Abhishek Singh

Відповіді:


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
Juha Untinen

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

Ви можете встановити розширення до virtualenv для управління кількома віртуальними середовищами Python ( virtualenvwrapper ) в Ubuntu 14.04 з програмного центру Ubuntu або з терміналу, використовуючи наступну команду:

sudo apt install virtualenvwrapper
gedit .bashrc

Додайте наступний рядок до кінця .bashrc.

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Збережіть зміни в .bashrc і закрийте gedit. Джерело вашого .bashrc, щоб зміни вступили в силу.

cd 
source .bashrc

Не працювало для мене.
FractalSpace

0

Я сподіваюся, що це допоможе комусь, у моєму випадку я намагався створити virtualenv, що знаходиться всередині екрана ( екран -S все, що завгодно ), рішення закрило екран і виконало команду virtualenv знову опинившись поза.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.