新しい環境を作成しようとすると、奇妙なエラーが発生し始めました。
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を作成しようとしているファイルシステムが実際に読み取り専用でない限り、なぜ読み取り専用ファイルシステムエラーが発生するのかわかりません。
このコードは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関連するビットがありません。 ペーストビンまたは要点を使用してください。
はるかに良いアイデア...
ただし、問題は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で)機能させることができました。 情報/提案をみんなに感謝します!
それを修正するための私の手順:
VBoxManage setextradata CENTOS VBoxInternal2/SharedFoldersEnableSymlinksCreate/home/oe 1
、ここで、CENTOS-Virtualbox OS名、/ home / oe-マウントされたフォルダーの名前
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コマンドを実行します。
私は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=
は空でした。
最も参考になるコメント
virtualenvを最新バージョン(1.11.6)にアップグレードし、次のように使用します
オプションはハードリンクを使用しませんが、ファイルをコピーします