Comecei a receber um erro estranho ao tentar criar novos ambientes:
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
Não pareço ter problemas para criar links simbólicos em nenhuma outra circunstância.
Estou executando o Ubuntu 11.04 através do Virtualbox - tentei destruir e reconstruir a caixa do zero (usando um manifesto de marionete inalterado), mas o mesmo erro persiste.
Receio que não haja muito que eu possa fazer aqui, pois não sou capaz de reproduzir a falha. Não sei por que você receberia um erro de sistema de arquivos somente leitura, a menos que o sistema de arquivos em que você está tentando criar o virtualenv seja de fato somente leitura.
Este código mudou na versão de desenvolvimento do virtualenv, então você pode tentar com virtualenv==dev e ver se isso ajuda.
Também estou tendo esse problema no Ubuntu 11.04 no Virtualbox. @rlayte se você descobriu como resolver isso, adoraria saber como.
Tenho certeza de que este é um problema de caixa virtual agora, então provavelmente deve ser levantado com eles se você quiser uma solução real para isso.
Eu 'resolvi' movendo o diretório .virtualenvs para uma pasta não compartilhada, pois o problema só existe em pastas compartilhadas com os x.
Por fim, decidi me afastar do virtualbox devido a esse tipo de instabilidade.
Acabei dando permissões de gravação ao grupo de pastas compartilhadas no OSX, remontei-o no Ubuntu e pareceu resolver o problema.
Caramba, encontrei esse problema agora, mas acho que é um bug do VirtualBox: https://www.virtualbox.org/ticket/10085#comment :12
Basicamente, os links simbólicos não funcionam mais em pastas compartilhadas por motivos de segurança.
Isso pode ser resolvido no virtualbox quando os problemas são criados por pastas compartilhadas executando:
virtualenv ~/[my-env-name]
source ~/[my-env-name]/bin/activate
Isso não armazenará seu ambiente em sua pasta, mas a prática recomendada é usar requirements.txt e dizer ao seu VCS para ignorar sua árvore de ambiente
Atualização : Claro, uma boa noite de sono deixa tudo mais claro. A instalação do python-dev como sudo alterou as permissões em alguns arquivos Python que causaram a falha do comando virtualenv, mas posso executar isso como sudo e funciona.
Estou vendo esse mesmo erro. Se eu criar uma nova VM a partir da caixa lucid32 base e, em seguida, executar os seguintes comandos:
sudo apt-get install python-pip
sudo pip install virtualenv
cd /vagrant/
virtualenv test0
sudo apt-get install python-dev
virtualenv test1
Em seguida, o primeiro virtualenv será criado com sucesso, mas o segundo falhará com o [Errno 30] Read-only file system
acima. Publiquei a saída completa desse processo aqui: https://gist.github.com/3346994. (Eu preciso de python-dev para mysql-python.)
Alguém sabe como posso corrigir/contornar isso? Eu prefiro continuar usando pastas compartilhadas, e isso parece diferente do problema com o VirtualBox. Obrigado, e deixe-me saber se eu puder fornecer mais informações!
sudo pip install virtualenv==dev
fez o truque para mim. Estou no host OS X Lion e Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-23-generic x86_64) como convidado.
Percebi isso novamente quando tentei configurar uma nova VM e parece que uma alteração entre virtualenv 1.8.2 e 1.8.3 fez com que esse erro voltasse:
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
Eu posso usar 1.8.2 por enquanto, mas pensei em mencionar aqui. Obrigado!
@lehrblogger Você poderia executar strace -f virtualenv test
, para identificar quais caminhos estão causando o erro?
@brentsmyth A parte relevante não está lá. Use um pastebin ou uma essência.
ideia muito melhor...
O problema está no virtualbox embora. Você pode encontrar algumas opções de solução nesses links ...
https://github.com/mitchellh/vagrant/issues/713
http://ahtik.com/blog/2012/08/16/fixing-your-virtualbox-shared-folder-symlink-error/
@g2p !! Desculpe ter demorado tanto para chegar a isso, eu estava viajando e devo ter perdido o e-mail.
https://gist.github.com/4211296
Estou executando o Mac OS X 10.8.2 e acabei de atualizar para as versões mais recentes do VirtualBox (4.2.4) e Vagrant (1.0.5). Fico feliz em fornecer mais informações se forem úteis e prometo responder mais rapidamente :)
(Tudo bem se eu tiver que usar uma das soluções alternativas do VirtualBox, mas o estranho é que ele funciona com virtualenv 1.8.2 e não 1.8.4 - veja o final da minha essência.)
Eu tive o mesmo problema. Usar o VBoxManage setextradata conforme proposto em https://www.virtualbox.org/ticket/10085 funcionou para mim. Mas isso é outra coisinha que torna o processo de execução de um servidor dev local virtual desnecessário complicado :)
Consegui fazer com que o VBoxManage setextradata funcione para mim também (com virtualenv 1.8.4) usando "v-root" como meu "SHARE_NAME" no meu Vagranfile, conforme sugerido neste comentário . Obrigado a todos pelas informações/sugestões!
Meus passos para corrigi-lo:
VBoxManage setextradata CENTOS VBoxInternal2/SharedFoldersEnableSymlinksCreate/home/oe 1
, onde CENTOS - nome do SO Virtualbox, /home/oe - nome da pasta montada
sudo mount -t vboxsf -o rw,uid=1000 shared_folder /mnt/shared_folder
, onde uid=1000 - uid do usuário atual no sistema operacional convidado (consulte /etc/passwd).
atualize o virtualenv para a versão mais recente (1.11.6) e use-o como
virtualenv --always-copy testenv
as opções não usarão o link físico, mas copiarão os arquivos
Aqui estão algumas informações úteis. Eu corrigi este problema:
http://forums.getpebble.com/discussion/5538/virtualbox-read-only-file-system
O link da solução é:
http://www.ahtik.com/blog/fixing-your-virtualbox-shared-folder-symlink-error/#comment -1388791879
Recebi este erro em um diretório compartilhado do host vm. Quando mudei para um diretório que não é compartilhado, tudo bem.
@sócrateslee Obrigado amigo. Você me salvou de muitos problemas!
o motivo é que você tentou iniciar o virtualenv em uma pasta compartilhada
OSError: [Errno 30] Sistema de arquivos somente leitura
se você estiver usando uma unidade compartilhada dentro de vm e tentando executar o tox dentro desse diretório, ele lançará esse erro. A solução simples é copiar esse código-fonte dentro de algum diretório em vm, digamos dentro do seu diretório inicial /home/sunil/projectName/ . e execute o comando tox dentro deste diretório.
O Tox agora tem uma maneira de não usar links simbólicos no virtualenv .
`[testemv]
semprecopiar = Verdadeiro`
Não estou usando o Virtual Box e estou enfrentando esse problema. Não sei por que em uma pasta específica não funciona. Eu fiz chmod e chown, mas simplesmente não funciona.
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
No meu caso, era setup.cfg
com prefix=
vazio que estava causando essa bagunça.
Comentários muito úteis
atualize o virtualenv para a versão mais recente (1.11.6) e use-o como
as opções não usarão o link físico, mas copiarão os arquivos