kesalahan bash shell: "tidak ada file atau direktori"

17

Saya mencoba menginstal pembungkus Virtualenv di Ubuntu 14.04. Tetapi setiap kali saya memulai terminal, saya mendapatkan pesan kesalahan bash:

/usr/share/virtualenvwrapper/virtualenvwrapper_lazy.sh: Tidak ada file atau direktori tersebut.

Saya juga memeriksa skrip bashrc dengan menggunakan gedit ~/.bashrc, tetapi tidak ada garis seperti itu. Adakah yang tahu di mana saya salah?

Abhishek Singh
sumber
Sudahkah Anda memeriksa file konfigurasi lain seperti .bash_profile, dan versi sistem secara keseluruhan /etc/?
Ya saya sudah memeriksa .bash_profile, tetapi ini kosong dan saya tidak tahu cara memeriksa / etc /.
Abhishek Singh
Seharusnya ada file global yang tidak disembunyikan sebagai /etc/bash.bashrc.
Lihat sumber ini chrisstrelioff.ws/sandbox/2014/09/04/… yang dapat membantu Anda dengan beberapa ide.
vembutech
@vembutech saya memeriksa tautan di atas, tetapi tidak membantu. Saya sudah menambahkan jalur virtualenvwrapper.sh di bashrc saya. Tetapi saya tidak menemukan jalan seperti yang saya jelaskan di atas dalam pertanyaan saya. Setiap kali saya mencoba sumber ~ / .bashrc, ia memberikan kesalahan di atas
Abhishek Singh

Jawaban:

20

Saya baru saja mengalami masalah yang sama pada Linux Mint.

File berikut ini menyebabkan masalah: /etc/bash_completion.d/virtualenvwrapper

Saya membuat cadangan (untuk berjaga-jaga) dan menghapusnya, dan semuanya tampaknya berfungsi dengan baik sekarang.

ayah Arktik
sumber
1
Bekerja untuk saya (+1).
FractalSpace
Bekerja untuk saya di Ubuntu (+1)
lightsong
16

Dalam kasus saya, saya sebelumnya menginstal virtualenvwrapper menggunakan apt-get install virtualenvwrapperdan kemudian menghapusnya menggunakan apt-get remove virtualenvwrapper, yang meninggalkan file 'konfigurasi' /etc/bash_completion.d/virtualenvwrapper. Definisi penyelesaian bash ini bersumber dari bash (tidak ada hubungannya dengan .bashrc saya) dan menyebabkan pesan kesalahan.

Solusinya adalah menjalankan:

sudo apt-get purge virtualenvwrapper

Yang membersihkan semua file yang terkait dengan virtualenvwrapper. Alasan saya mencopotnya adalah karena menggunakan versi pip (lebih mutakhir), yang dapat diinstal secara global menggunakan:

sudo pip install virtualenvwrapper
pengguna30747
sumber
Saya memiliki masalah ini dalam teks 3 di OSX ketika membangun sebuah skrip dan untuk menyelesaikannya saya baru saja menginstalnya melalui pip seperti yang dinyatakan oleh perintah Anda di atas. Terima kasih
James Campbell
Bekerja untuk saya di Ubuntu 16.04
Juha Untinen
5

Mengikuti petunjuk ini , saya menemukan bahwa kesalahan terjadi ketika sumber skrip bash virtualenvwrapper, yaitu:

source /usr/local/bin/virtualenvwrapper.sh

Script mereferensikan file /etc/bash_completion.d/virtualenvwrapperseperti yang ditunjukkan oleh arcticfeather.

Buka skrip menggunakan perintah berikut:

sudo nano /etc/bash_completion.d/virtualenvwrapper

Di sinilah file yang tidak ada direferensikan. Cukup ganti /usr/share/virtualenvwrapper/virtualenvwrapper_lazy.shdengan /usr/local/bin/virtualenvwrapper_lazy.shdan Anda harus baik-baik saja!

Michael Hays
sumber
1
Tidak bekerja untuk saya.
FractalSpace
1

Jika tidak ada jawaban yang berfungsi seperti saya sendiri, buat saja file kosong di lokasi yang memberikan kesalahan dan lakukan itu.

Dalam hal OP:

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

dan tulis:

#!/bin/bash

Simpan dan coba buka terminal lagi, lakukan trik untuk saya

Ritiek
sumber
1

Anda dapat menginstal Extension ke virtualenv untuk mengelola beberapa lingkungan Python virtual ( virtualenvwrapper ) di Ubuntu 14.04 dari Ubuntu Software Center atau dari terminal menggunakan perintah berikut:

sudo apt install virtualenvwrapper
gedit .bashrc

Tambahkan baris berikut ke akhir .bashrc.

source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

Simpan perubahan ke .bashrc dan tutup gedit. Sumber .bashrc Anda agar perubahan diterapkan.

cd 
source .bashrc
karel
sumber
Tidak bekerja untuk saya.
FractalSpace
0

Saya harap ini membantu seseorang, dalam kasus saya saya mencoba membuat virtualenv berada di dalam layar ( layar -S apapun ), solusinya adalah menutup layar dan menjalankan perintah virtualenv lagi berada di luar.

Jonathan Arias
sumber