Virtualenv: OSError: [Errno 30] Sistem file hanya-baca

Dibuat pada 27 Des 2011  ·  27Komentar  ·  Sumber: pypa/virtualenv

Saya mulai mendapatkan kesalahan aneh saat mencoba membuat lingkungan baru:

Traceback (most recent call last):
     File "/usr/local/bin/virtualenv", line 9, in <module>
       load_entry_point('virtualenv==1.7', 'console_scripts', 'virtualenv')()
     File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 928, in main
       never_download=options.never_download)
     File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1029, in create_environment
       site_packages=site_packages, clear=clear))
     File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1145, in install_python
       fix_local_scheme(home_dir)
     File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1430, in fix_local_scheme
       os.symlink(os.path.abspath(home_dir), local_path)
OSError: [Errno 30] Read-only file system

Sepertinya saya tidak kesulitan membuat symlink dalam keadaan lain apa pun.

Saya menjalankan Ubuntu 11.04 melalui Virtualbox - Saya telah mencoba menghancurkan dan membangun kembali kotak dari awal (menggunakan manifes boneka yang tidak berubah), tetapi kesalahan yang sama tetap ada.

Komentar yang paling membantu

tingkatkan virtualenv ke versi terbaru (1.11.6), dan gunakan sebagai

virtualenv --always-copy testenv

opsi tidak akan menggunakan tautan keras tetapi salin file

Semua 27 komentar

Saya khawatir tidak banyak yang bisa saya lakukan di sini, karena saya tidak dapat mereproduksi kegagalan. Saya tidak tahu mengapa Anda mendapatkan kesalahan sistem file hanya-baca kecuali sistem file tempat Anda mencoba membuat virtualenv sebenarnya hanya-baca.

Kode ini telah berubah dalam versi pengembangan virtualenv, jadi Anda dapat mencoba dengan virtualenv==dev dan melihat apakah itu membantu.

Saya juga mengalami masalah ini di Ubuntu 11.04 di Virtualbox. @rlayte jika Anda menemukan cara untuk menyelesaikan ini, saya ingin tahu caranya.

Saya cukup yakin ini adalah masalah kotak virtual sekarang jadi mungkin harus diangkat bersama mereka jika Anda menginginkan solusi nyata untuk itu.

Saya 'menyelesaikannya' dengan memindahkan direktori .virtualenvs ke folder yang tidak dibagikan karena masalahnya hanya ada di folder yang dibagikan dengan os x.

Saya akhirnya memutuskan untuk menjauh dari virtualbox karena ketidakstabilan semacam ini.

Saya akhirnya memberikan izin menulis grup folder bersama di OSX, lalu memasangnya kembali di Ubuntu, dan sepertinya menyelesaikan masalah.

Astaga, mengalami masalah ini sekarang, tapi saya pikir ini adalah bug VirtualBox: https://www.virtualbox.org/ticket/10085#comment :12

Pada dasarnya symlink tidak berfungsi lagi di folder bersama karena alasan keamanan.

Ini dapat diselesaikan di virtualbox ketika masalah dibuat oleh folder bersama dengan menjalankan:

virtualenv ~/[my-env-name]
source ~/[my-env-name]/bin/activate

Ini tidak akan menyimpan lingkungan Anda di folder Anda, tetapi praktik terbaik adalah menggunakan requirements.txt dan memberi tahu VCS Anda untuk mengabaikan pohon lingkungan Anda

Pembaruan : Tentu saja, tidur malam yang nyenyak membuat segalanya lebih jelas. Menginstal python-dev sebagai Sudo mengubah izin di beberapa file Python yang menyebabkan perintah virtualenv gagal, tetapi saya bisa menjalankannya sebagai Sudo dan berhasil.

Saya melihat kesalahan yang sama. Jika saya membuat VM baru dari kotak lucid32 dasar dan kemudian menjalankan perintah berikut:

  • sudo apt-get install python-pip
  • sudo pip install virtualenv
  • cd /vagrant/
  • virtualenv test0
  • sudo apt-get install python-dev
  • virtualenv test1

Kemudian virtualenv pertama akan berhasil dibuat, tetapi yang kedua akan gagal dengan [Errno 30] Read-only file system di atas. Saya telah memposting hasil lengkap dari proses ini di sini: https://Gist.github.com/3346994. (Saya perlu python-dev untuk mysql-python.)

Adakah yang tahu bagaimana saya bisa memperbaiki/mengatasi ini? Saya lebih suka tetap menggunakan folder bersama, dan ini tampaknya berbeda dari masalah dengan VirtualBox. Terima kasih, dan beri tahu saya jika saya dapat memberikan informasi lebih lanjut!

sudo pip install virtualenv==dev melakukan trik untuk saya. Saya menggunakan OS X Lion Host dan Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-23-generic x86_64) sebagai tamu.

Saya perhatikan ini lagi ketika saya mencoba mengatur VM baru, dan tampaknya perubahan antara virtualenv 1.8.2 dan 1.8.3 menyebabkan kesalahan itu kembali:

vagrant<strong i="6">@lucid32</strong>:/vagrant$ virtualenv test
New python executable in test/bin/python
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 9, in <module>
    load_entry_point('virtualenv==1.8.3', 'console_scripts', 'virtualenv')()
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 961, in main
    never_download=options.never_download)
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1062, in create_environment
    site_packages=site_packages, clear=clear))
  File "/usr/local/lib/python2.6/dist-packages/virtualenv.py", line 1482, in install_python
    os.symlink(py_executable_base, full_pth)
OSError: [Errno 30] Read-only file system

Saya dapat menggunakan 1.8.2 untuk saat ini, tetapi saya pikir saya akan menyebutkannya di sini. Terima kasih!

@lehrblogger Bisakah Anda menjalankan strace -f virtualenv test , untuk menentukan jalur mana yang menyebabkan kesalahan?

@brentsmyth Bit yang relevan tidak ada. Gunakan pastebin atau intisari.

ide yang jauh lebih baik...

http://pastebin.com/imzmMYFj

Masalahnya terletak pada virtualbox. Anda dapat menemukan beberapa opsi penyelesaian di tautan ini...

https://github.com/mitchellh/vagrant/issues/713
http://ahtik.com/blog/2012/08/16/fixing-your-virtualbox-shared-folder-symlink-error/

@g2p !! Maaf butuh waktu lama untuk sampai ke sini, saya sedang bepergian dan pasti ketinggalan email.

https://Gist.github.com/4211296

Saya menjalankan Mac OS X 10.8.2 dan baru saja memutakhirkan ke versi terbaru VirtualBox (4.2.4) dan Vagrant (1.0.5). Saya senang memberikan lebih banyak info jika itu bermanfaat, dan saya berjanji akan merespons lebih cepat :)

(Tidak apa-apa jika saya harus menggunakan salah satu solusi VirtualBox, tetapi yang aneh adalah ia bekerja dengan virtualenv 1.8.2 dan bukan 1.8.4 – lihat akhir intisari saya.)

Saya mengalami masalah yang sama. Menggunakan VBoxManage setextradata seperti yang diusulkan di https://www.virtualbox.org/ticket/10085 berhasil untuk saya. Tapi ini adalah hal kecil lain yang membuat proses menjalankan server dev lokal virtual tidak perlu rumit :)

Saya juga bisa membuat setextradata VBoxManage bekerja untuk saya (dengan virtualenv 1.8.4) dengan menggunakan "v-root" sebagai "SHARE_NAME" saya di Vagranfile saya, seperti yang disarankan dalam komentar ini . Terima kasih semuanya atas info/saran!

Langkah saya untuk memperbaikinya:

  1. Gunakan virtualenv==1.8.2 (tidak bekerja dengan 1.8.4!)
  2. setextradata di OS host:
VBoxManage setextradata CENTOS VBoxInternal2/SharedFoldersEnableSymlinksCreate/home/oe 1

, di mana CENTOS - nama Virtualbox OS, /home/oe - nama folder yang dipasang

  1. Pasang perangkat di OS tamu dengan izin baca-tulis:
sudo mount -t vboxsf -o rw,uid=1000 shared_folder /mnt/shared_folder

, di mana uid=1000 - uid dari pengguna saat ini di OS tamu (lihat /etc/passwd).

tingkatkan virtualenv ke versi terbaru (1.11.6), dan gunakan sebagai

virtualenv --always-copy testenv

opsi tidak akan menggunakan tautan keras tetapi salin file

Berikut adalah beberapa informasi yang berguna. Saya memperbaiki masalah ini:
http://forums.getpebble.com/discussion/5538/virtualbox-read-only-file-system

Link solusinya adalah:

http://www.ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/#comment -1388791879

Saya mendapatkan kesalahan ini pada direktori bersama dari Host vm. Ketika saya beralih ke direktori yang tidak dibagikan, itu baik-baik saja.

@socrateslee Terima kasih sobat. Anda menyelamatkan saya dari banyak kerumitan!

alasannya adalah Anda mencoba memulai virtualenv di folder bersama

OSError: [Errno 30] Sistem file hanya-baca
jika Anda telah menggunakan drive bersama di dalam vm dan mencoba menjalankan tox di dalam direktori itu, itu akan menimbulkan kesalahan ini. Solusi sederhana adalah menyalin kode sumber itu di dalam beberapa direktori di vm, katakanlah di dalam direktori home Anda /home/sunil/projectName/ . dan jalankan perintah tox di dalam direktori ini.

Tox sekarang memiliki cara untuk mengatur tidak menggunakan symlink di virtualenv .

`[testenv]

selalukopi = Benar`

Saya tidak menggunakan Virtual Box dan saya menghadapi masalah ini. Saya tidak tahu mengapa di folder tertentu tidak berfungsi. Saya melakukan chmod dan chown tetapi tidak berhasil.

ERROR: Could not install packages due to an EnvironmentError.
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/commands/install.py", line 414, in run
    use_user_site=options.use_user_site,
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/req/__init__.py", line 58, in install_given_reqs
    **kwargs
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/req/req_install.py", line 920, in install
    use_user_site=use_user_site, pycompile=pycompile,
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/req/req_install.py", line 448, in move_wheel_files
    warn_script_location=warn_script_location,
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/wheel.py", line 426, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/wheel.py", line 357, in clobber
    ensure_dir(dest)  # common for the 'include' path
  File "/usr/local/lib/python3.7/site-packages/virtualenv_support/pip-19.1.1-py2.py3-none-any.whl/pip/_internal/utils/misc.py", line 99, in ensure_dir
    os.makedirs(path)
  File "/Users/aw3/Projects/python/platzi-python/appengine_contact_server/venv/bin/../lib/python3.7/os.py", line 211, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/Users/aw3/Projects/python/platzi-python/appengine_contact_server/venv/bin/../lib/python3.7/os.py", line 211, in makedirs
    makedirs(head, exist_ok=exist_ok)
  File "/Users/aw3/Projects/python/platzi-python/appengine_contact_server/venv/bin/../lib/python3.7/os.py", line 221, in makedirs
    mkdir(name, mode)
OSError: [Errno 30] Read-only file system: '/lib'
Cleaning up...
Removed build tracker '/private/var/folders/31/j0bhpp4s3qx1kcpz6fnq__b40000gn/T/pip-req-tracker-ry41njg8'
----------------------------------------
...Installing setuptools, pip, wheel...done.
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/site-packages/virtualenv.py", line 870, in main
    symlink=options.symlink,
  File "/usr/local/lib/python3.7/site-packages/virtualenv.py", line 1173, in create_environment
    install_wheel(to_install, py_executable, search_dirs, download=download)
  File "/usr/local/lib/python3.7/site-packages/virtualenv.py", line 1019, in install_wheel
    _install_wheel_with_search_dir(download, project_names, py_executable, search_dirs)
  File "/usr/local/lib/python3.7/site-packages/virtualenv.py", line 1110, in _install_wheel_with_search_dir
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=script)
  File "/usr/local/lib/python3.7/site-packages/virtualenv.py", line 963, in call_subprocess
    raise OSError("Command {} failed with error code {}".format(cmd_desc, proc.returncode))
OSError: Command /Users/aw3/Projects/...r/venv/bin/python3.7 - setuptools pip wheel failed with error code 1

Dalam kasus saya, setup.cfg dengan prefix= kosong yang menyebabkan kekacauan ini.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat