Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 05/03/2018, à 12:50

__fabrice

"Permission denied" avec virtualenv, vagrant et smb (windows)

Salut,

Je suis sur une VM Ubuntu 16.04, avec Vagrant. Mes dossiers sont synchronisés avec SMB

Je commence un projet Django en créeant un environnement de dev avec VirtualEnv (dernière version). Mais j'ai ces erreurs :

$ virtualenv --always-copy env -p python3
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2328, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 925, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1130, in install_python
    copyfile(join(stdlib_dir, fn), join(lib_dir, fn), symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 357, in copyfile
    copyfileordir(src, dest, symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 329, in copyfileordir
    shutil.copytree(src, dest, symlink)
  File "/usr/lib/python3.5/shutil.py", line 353, in copytree
    raise Error(errors)
shutil.Error: [('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so', '[Errno 1] Operation not permitted'), ('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5m.so', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5m.so', '[Errno 1] Operation not permitted'), ('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu', '[Errno 1] Operation not permitted')]
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
ImportError: No module named 'apport'

Original exception was:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2328, in <module>
    main()
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main
    symlink=options.symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 925, in create_environment
    site_packages=site_packages, clear=clear, symlink=symlink))
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 1130, in install_python
    copyfile(join(stdlib_dir, fn), join(lib_dir, fn), symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 357, in copyfile
    copyfileordir(src, dest, symlink)
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 329, in copyfileordir
    shutil.copytree(src, dest, symlink)
  File "/usr/lib/python3.5/shutil.py", line 353, in copytree
    raise Error(errors)
shutil.Error: [('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5.so', '[Errno 1] Operation not permitted'), ('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5m.so', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu/libpython3.5m.so', '[Errno 1] Operation not permitted'), ('/usr/lib/python3.5/config-3.5m-x86_64-linux-gnu', '/var/www/my-project/env/lib/python3.5/config-3.5m-x86_64-linux-gnu', '[Errno 1] Operation not permitted')]

Si je le lance en sudo :

$ sudo virtualenv --always-copy env -p python3
Running virtualenv with interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /var/www/my-project/env/bin/python3
Also creating executable in /var/www/my-project/env/bin/python
ERROR: The executable /var/www/my-project/env/bin/python3 could not be run: [Errno 13] Permission denied

J'ai trouvé sur un forum qu'il fallait changer le fstab, mais cela ne change rien ("UUID" et ajout de exec,) :

$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/vagrant--vg-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=c70f1fc5-432a-411c-a6b5-a23f1b1895d9 /boot           ext2    exec,defaults        0       2
/dev/mapper/vagrant--vg-swap_1 none            swap    sw  

Voici les droits des fichiers :

$ cat /etc/group | grep "www-"
www-data:x:33:vagrant,apache,nginx,httpd,www-data,www-user,root
vagrant:x:1000:www-data
www-user:x:1002:vagrant

$ cat /etc/passwd | grep "www-"
www-data:x:33:33:www-data:/var/www:/bin/bash
www-user:x:1004:1002::/home/www-user:/bin/bash

$ cat /etc/passwd | grep "vagrant"
vagrant:x:1000:1000:vagrant,,,:/home/vagrant:/bin/bash

$ ll env/bin/
total 13M
drwxrwxr-x 2 www-data www-data    0 mars   5 12:11 ./
drwxrwxr-x 2 www-data www-data    0 mars   5 12:11 ../
-rw-rw-r-- 1 www-data www-data 4,3M mars   5 12:11 python
-rw-rw-r-- 1 www-data www-data 4,3M mars   5 12:11 python3
-rw-rw-r-- 1 www-data www-data 4,3M mars   5 12:11 python3.5

Une idée ?

Merci
Fabrice

Dernière modification par __fabrice (Le 05/03/2018, à 13:16)

Hors ligne

#2 Le 05/03/2018, à 13:45

__fabrice

Re : "Permission denied" avec virtualenv, vagrant et smb (windows)

Bon, j'ai changé la config de vagrant en rebasculant en "default" pour la synchro des fichiers et cela fonctionne.*

                sync_type: default
                smb:
                    smb_host: ''
                    smb_username: ''
                    smb_password: ''
                    mount_options:
                        dir_mode: '0775'
                        file_mode: '0664'

Cela vient de SMB !.
Je suis pourtant en admin (c'est peutêtre la cause !) en powreshell. Et c'est comme çà qu'il faut faire en fait :

SMB shared folders require running Vagrant with administrative
privileges. This is a limitation of Windows, since creating new
network shares requires admin privileges. Please try again in a
console with proper permissions or use another synced folder type.

Une idée sinon ?

F.

Dernière modification par __fabrice (Le 05/03/2018, à 13:48)

Hors ligne