3

setup.pyを使用してPythonパッケージのインストールを作成し、フォルダー(この機会に作成された)〜/.didにデータファイルをコピーしたいと思います。問題は、/ usr / local / ...に書き込むため、sudo権限でsetup.pyを呼び出さなければならないことです。したがって、データファイルが〜/ .didにコピーされると、rootユーザーのみがファイルへの書き込みアクセス権を持ちます。 。

次に、setup()関数の後にos.chmod()の呼び出しを追加することにしましたが、もっとクリーンな方法があるかどうか知りたいです。

これが私のsetup.pyファイルです:

#!/usr/bin/env python

from distutils.core import setup
import os

home=os.path.expanduser('~')

setup(name='did',
      version='1.0',
      description='Daily Image Downloader',
      author='Luc Mazon',
      author_email='my@mail.com',
      url='',
      license='GNU GPL v3',
      scripts=['did'],
      packages=['didlib'],
      data_files=[
                  ('/usr/share/man/man1', ['doc/did.1.gz']),
                  (home+'/.did', ['did.xml'])
                 ]
     )

os.chmod(home+'/.did/did.xml', 0666)

did.xmlはPythonファイルではないため、次の行を含むMANIFEST.inファイルも作成しました。

include did.xml

私のパッケージのグローバル構造は次のとおりです。

did-1.0
 | didlib
 |  | __init__.py
 |  | variouspyfiles.py
 | doc
 |  |-did.1.gz
 | MANIFEST.in
 | did.xml
 | did
 | setup.py
4

2 に答える 2

4

インストーラーのホームディレクトリに設定ファイルをまったく書き込まない方が、より一般的であると思います。他のユーザーはどうですか?初期化時に、そのファイルを実行しているユーザーにそのファイルが存在するかどうかをコードでチェックし、存在しない場合にのみ新しいファイルを追加することをお勧めします。

于 2010-12-29T09:43:26.313 に答える
0

私にとって、あなたはchown(所有者の変更)またはchgrp(グループの変更)のいずれかを探しています。

さらに、なぜsudoを作成しているのかわかりません。必要なのは、これらのファイルに正しくアクセスすることだけです。chmod -R gou+rx setup_dirしたがって、インストールを参照できるようにするには、追加するだけです。

于 2010-12-29T08:57:10.467 に答える