IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Setup.py �choue - fichier en lecture seule


Sujet :

Python

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par d�faut Setup.py �choue - fichier en lecture seule
    Bonjour,

    J'ai un probl�me avec l'installation d'un package que je dois maintenir. Le fichier setup.py a �t� r�dig� par quelqu'un d'autre et je suis pas tr�s avanc� en Python.

    Le probl�me survient quand les fichiers � installer sont en lecture seule. Le code du fichier setup.py retire l'attribut lecture seule des fichiers correctement, mais le fichier g�n�r� par l'installation "package-cmd.py" demeure en lecture seule.

    La premi�re fois que l'on �x�cute l'installation, cela fonctionne, mais une erreur survient lorsqu'il tente d'effacer le contenu du r�pertoire build, puisque le fichier build\bdist.win32\egg\EGG-INFO\scripts\package-cmd.py est en lecture seule.

    creating 'dist\package-1.2.4-py2.7.egg' and adding 'build\bdist.win32\egg' to it
    removing 'build\bdist.win32\egg' (and everything under it)
    error removing build\bdist.win32\egg: build\bdist.win32\egg\EGG-INFO\scripts\package-cmd.py: Access is denied
    error removing build\bdist.win32\egg: build\bdist.win32\egg\EGG-INFO\scripts: The directory is not empty
    error removing build\bdist.win32\egg: build\bdist.win32\egg\EGG-INFO: The directory is not empty
    error removing build\bdist.win32\egg: build\bdist.win32\egg: The directory is not empty
    Si on tente de r�installer le package un jour (parce qu'on l'a d�sinstall� ou autre raison) alors que le dossier "build" est pr�sent (d'une installaton pr�c�dente), l'installation �choue compl�tement en donnant l'erreur : "error: could not delete 'build\scripts-2.7\package-cmd.py': Access is denied". Il n'a pas pu remplacer le fichier car il est en lecture seule.

    Id�alement, j'aimerais que le setup.py me g�n�re un fichier package-cmd.py qui n'est pas en lecture seule. Retirer l'attribut "lecture seule" sur les fichiers originaux d'installation fonctionne, mais ce n'est pas une option, puisque cet attribut est g�r� par une instance Perforce.

    Voici le code du setup.py. Est-ce qu'il y a quelque chose que je peux modifier pour modifier l'attribut lecture seule du fichier g�n�r�?

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    from setuptools import setup
    from distutils.command.install import INSTALL_SCHEMES
    from distutils.command.install_data import install_data as _install_data
    import os
    import sys
     
    # remove read-only from data files
    class install_data(_install_data):  
    def copy_file(self, infile, outfile,
                  preserve_mode=0, preserve_times=1, link=None, level=1):
        return _install_data.copy_file(self,infile, outfile, preserve_mode=0, preserve_times=1, link=None, level=1)
     
    def fullsplit(path, result=None):
    """
    Split a pathname into components (the opposite of os.path.join) in a
    platform-neutral way.
    """
    if result is None:
        result = []
    head, tail = os.path.split(path)
    if head == '':
        return [tail] + result
    if head == path:
        return result
    return fullsplit(head, [tail] + result)
     
    # Tell distutils to put the data_files in platform-specific installation
    # locations. See here for an explanation:
    #       
    for scheme in INSTALL_SCHEMES.values():
    scheme['data'] = scheme['purelib']
     
    # Compile the list of packages available, because distutils doesn't have
    # an easy way to do this.
    packages, data_files = [], []
    root_dir = os.path.dirname(__file__)
    if root_dir != '':
    os.chdir(root_dir)
    tool_dir = 'package_name'
     
    # install
    for dirpath, dirnames, filenames in os.walk(tool_dir):
    # Ignore dirnames that start with '.'
    for i, dirname in enumerate(dirnames):
        if dirname.startswith('.'): del dirnames[i]
    if '__init__.py' in filenames:
        packages.append('.'.join(fullsplit(dirpath)))
        for f in filenames:
            if not f.endswith('.py'):
                data_files.append([dirpath, [os.path.join(dirpath,f)]])
    elif filenames:
        data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]])
     
    #setup
     
     
    setup(
    name = "Package_name",
    version = '1.2.4',
    cmdclass = {
        'install_data' : install_data,
    },
    packages = packages,
    data_files = data_files,
    scripts = ['scripts/package-cmd.py'],
    entry_points = {
      'console_scripts' : ['package = package:execute_from_command_line']
    },
    )

  2. #2
    Expert confirm�

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Expert Python
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Par d�faut
    Bonjour,

    Je pense que le probleme n'est pas du cot� du code mais plutot du user utilis� pour l'ex�cuter.

    Essaie en mode root. Ainsi tu poss�dera tous les droits d'acc�s sur les fichiers et cela devrait passer je pense.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    2
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 2
    Par d�faut
    Je viens de v�rifier et mon user est dans le groupe Administrateur (sous windows). Je suis capable d'effacer le fichier en question lorsque je le fais sous windows explorer.

    Lorsque je fais mon "python setup.py install", est-ce qu'il y a moyen de forcer la commande � rouler en tant qu'admin ou quelque chose dans ce style?

    EDIT: J'ai mis la commande dans un batch file, fais un clique-droit dessus et s�lectionn� "run as administrator", sans changement.

  4. #4
    Membre chevronn�
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 290
    Par d�faut
    Bonjour,

    Commencez par vous renseigner sur distutils.command.install_data.install_data.copy_file, en particulier l'attribut preserve_mode.

    Ce code me laisse perplexe... vous avez essay� de virer toute la partie "customis�e" ?

    nan mais WTF... le forum Haskell, c'est pas ici

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def fullsplit(path, result=None):
    """
    Split a pathname into components (the opposite of os.path.join) in a
    platform-neutral way.
    """
    if result is None:
        result = []
    head, tail = os.path.split(path)
    if head == '':
        return [tail] + result
    if head == path:
        return result
    return fullsplit(head, [tail] + result)
    ps : l'indentation du code post� est mal pass�e, c'est p�nible...

Discussions similaires

  1. effacer un fichier en lecture seule
    Par balha dans le forum C++
    R�ponses: 5
    Dernier message: 15/12/2005, 16h57
  2. Modifier ou supprimer fichier en lecture seule
    Par axel-erator dans le forum Langage
    R�ponses: 2
    Dernier message: 01/12/2005, 17h57
  3. R�ponses: 8
    Dernier message: 09/08/2005, 11h44
  4. R�ponses: 7
    Dernier message: 05/08/2005, 16h32
  5. [PDE] Editeur de fichiers en lecture seule
    Par simsky dans le forum Eclipse Java
    R�ponses: 7
    Dernier message: 13/07/2005, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo