Virtualenv: OSError:[Errno30]読み取り専用ファイルシステム

作成日 2011年12月27日  ·  27コメント  ·  ソース: pypa/virtualenv

新しい環境を作成しようとすると、奇妙なエラーが発生し始めました。

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

他の状況でシンボリックリンクを作成するのに問題はないようです。

Virtualboxを介してUbuntu11.04を実行しています-(変更されていないpuppetマニフェストを使用して)ボックスを最初から破棄して再構築しようとしましたが、同じエラーが続きます。

最も参考になるコメント

virtualenvを最新バージョン(1.11.6)にアップグレードし、次のように使用します

virtualenv --always-copy testenv

オプションはハードリンクを使用しませんが、ファイルをコピーします

全てのコメント27件

失敗を再現できないので、ここでできることはあまりないのではないかと思います。 virtualenvを作成しようとしているファイルシステムが実際に読み取り専用でない限り、なぜ読み取り専用ファイルシステムエラーが発生するのかわかりません。

このコードはvirtualenvの開発バージョンで変更されているため、virtualenv == devを試して、それが役立つかどうかを確認できます。

VirtualboxのUbuntu11.04でもこの問題が発生しています。 @rlayteこれを解決する方法を見つけたら、私はその方法を知りたいです。

これは今ではvirtualboxの問題であると確信しているので、実際の解決策が必要な場合は、おそらく彼らと一緒に提起する必要があります。

問題はosxと共有されているフォルダにのみ存在するため、.virtualenvsディレクトリを非共有フォルダに移動することで「解決」しました。

この種の不安定さのために、私は最終的にvirtualboxから離れることに決めました。

結局、OSXで共有フォルダグループに書き込み権限を与えてから、Ubuntuに再マウントしたところ、問題は解決したようです。

Yikes、ちょうど今この問題に遭遇しました、しかし私はそれがVirtualBoxのバグだと思います: https ://www.virtualbox.org/ticket/10085#comment:12

基本的に、セキュリティ上の理由から、シンボリックリンクは共有フォルダでは機能しなくなりました。

これは、以下を実行して共有フォルダーによって問題が作成された場合に、virtualboxで解決できます。

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

これは環境をフォルダに保存しませんが、ベストプラクティスは、requirements.txtを使用して、VCSに環境ツリーを無視するように指示することです。

更新:もちろん、ぐっすり眠るとすべてがより明確になります。 python-devをsudoとしてインストールすると、一部のPythonファイルのアクセス許可が変更され、virtualenvコマンドが失敗しましたが、sudoとして実行するだけで機能します。

これと同じエラーが表示されます。 ベースのlucid32ボックスから新しいVMを作成してから、次のコマンドを実行すると、次のようになります。

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

次に、最初のvirtualenvは正常に作成されますが、2番目は上記の[Errno 30] Read-only file systemで失敗します。 このプロセスの完全な出力をhttps://gist.github.com/3346994に投稿しました。 (mysql-pythonにはpython-devが必要です。)

誰かが私がこれを修正/回避する方法を知っていますか? 私は共有フォルダを使い続けることを強く望んでおり、これはVirtualBoxの問題とは異なるようです。 ありがとう、そして私がこれ以上の情報を提供できるかどうか私に知らせてください!

sudo pip install virtualenv==devが私のためにトリックをしました。 私はOSXLionホストとUbuntu12.04.1 LTS(GNU / Linux 3.2.0-23-generic x86_64)をゲストとして使用しています。

新しいVMをセットアップしようとしたときに、これに再び気づきました。virtualenv1.8.2と1.8.3の間の変更により、エラーが再発したようです。

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

今のところ1.8.2を使用できますが、ここで言及したいと思いました。 ありがとう!

@lehrblogger strace -f virtualenv testを実行して、エラーの原因となっているパスを特定できますか?

@brentsmyth関連するビットがありません。 ペーストビンまたは要点を使用してください。

はるかに良いアイデア...

http://pastebin.com/imzmMYFj

ただし、問題はvirtualboxにあります。 これらのリンクでいくつかの回避策のオプションを見つけることができます...

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

@ g2p !! 申し訳ありませんが、これに到達するのに非常に時間がかかりました。私は旅行中で、メールを見逃したに違いありません。

https://gist.github.com/4211296

Mac OS X 10.8.2を実行していて、VirtualBox(4.2.4)とVagrant(1.0.5)の最新バージョンにアップグレードしました。 役立つ情報があれば喜んで提供します。もっと迅速に対応することをお約束します:)

(VirtualBoxの回避策の1つを使用する必要がある場合は問題ありませんが、奇妙なことに、1.8.4ではなくvirtualenv 1.8.2で動作します。要点の終わりを参照してください。)

私は同じ問題に遭遇しました。 https://www.virtualbox.org/ticket/10085で提案されているVBoxManagesetextradataを使用すると、うまくいきました。 しかし、これは仮想ローカル開発サーバーを実行するプロセスを不必要に面倒にするもう1つの小さなことです:)

このコメントで提案されているように、Vagranfileで「SHARE_NAME」として「v-root」を使用することで、VBoxManage setextradataを(virtualenv 1.8.4で)機能させることができました。 情報/提案をみんなに感謝します!

それを修正するための私の手順:

  1. virtualenv == 1.8.2を使用します(1.8.4では機能しません!)
  2. ホストOSのsetextradata:
VBoxManage setextradata CENTOS VBoxInternal2/SharedFoldersEnableSymlinksCreate/home/oe 1

、ここで、CENTOS-Virtualbox OS名、/ home / oe-マウントされたフォルダーの名前

  1. 読み取り/書き込み権限を持つゲストOSにデバイスをマウントします。
sudo mount -t vboxsf -o rw,uid=1000 shared_folder /mnt/shared_folder

、ここでuid = 1000-ゲストOSの現在のユーザーのuid(/ etc / passwdを参照)。

virtualenvを最新バージョン(1.11.6)にアップグレードし、次のように使用します

virtualenv --always-copy testenv

オプションはハードリンクを使用しませんが、ファイルをコピーします

ここにいくつかの有用な情報があります。 私はこの問題を修正しました:
http://forums.getpebble.com/discussion/5538/virtualbox-read-only-file-system

ソリューションのリンクは次のとおりです。

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

vmホストの共有ディレクトリでこのエラーが発生しました。 共有されていないディレクトリに切り替えたところ、問題ありませんでした。

@socratesleeありがとうございます。 あなたは私に多くの手間を省きました!

その理由は、共有フォルダーでvirtualenvを起動しようとしたためです。

OSError:[Errno30]読み取り専用ファイルシステム
vm内で共有ドライブを使用していて、そのディレクトリ内でtoxを実行しようとすると、このエラーがスローされます。 簡単な解決策は、そのソースコードをvmのディレクトリ内にコピーすることです。たとえば、ホームディレクトリ/ home / sunil / projectName /内にコピーします。 このディレクトリ内でtoxコマンドを実行します。

Toxには、virtualenvでシンボリックリンクを使用しないように設定する方法があります。

`[testenv]

alwayscopy = True`

私はVirtualBoxを使用しておらず、この問題に直面しています。 特定のフォルダで機能しない理由がわかりません。 chmodとchownを実行しましたが、機能しません。

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

私の場合、この混乱を引き起こしたのはsetup.cfgで、 prefix=は空でした。

このページは役に立ちましたか?
0 / 5 - 0 評価