web-dev-qa-db-ja.com

pycファイルをバージョン管理下に置くべきですか?

PythonでGitHubプロジェクトをforkしました。プロジェクトを初めて実行した後、いくつかの.pycファイルが内部に表示されました。それらをバージョン管理下に置き、フォークにコミットする必要がありますか?

30

すべきではない。 .pycファイルには、バイトコードが含まれています。バイトコードは、Pythonのバージョンや実装によって異なります。

*.pycまたはグローバルgitignore.gitignore行を追加するだけです。

また、ほぼすべてのプラットフォームの gitignoreの素晴らしいコレクション ファイルも確認してください。これをpythonプロジェクトに使用できます:

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.Egg-info/
.installed.cfg
*.Egg

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover

# Translations
*.mo
*.pot

# Django stuff:
*.log

# Sphinx documentation
docs/_build/

# PyBuilder
target/
19
svfat

これらのファイルは すでにリポジトリにあるコードのコンパイル済みバージョン であるため、Pythonはコードをより高速に実行できます。これらは実際のソースコードの直接計算結果であるためそれらをチェックインする利点はありません-ソースコードが更新されるたびに更新する必要があるだけです。また、(私の知る限り)Pythonの異なるマシンまたはバージョンであるという保証はありません)互換性のある.pycファイルを生成します。つまり、生成した.pycファイルを配布すると、他の人の環境が破壊される可能性があります。

代わりに、.gitignoreファイルを修正して.pycファイルを無視し、フォークにコミットするか、上流に戻すこともできます。レポ)。そうすれば、将来これらのファイルに気づいたり心配する必要がなくなります。

7
dimo414

ファイルには何も悪いことはありませんが、それは役に立たないジャンクであり、pythonアプリケーションの実行を高速化するためだけにあり、変更を加えるたびに再構築されるので、時間の経過とともに大きくなります、それを修正するには、__pycache__行に.gitignoreファイル

2

いいえ。あなた入れないでください pycバージョン管理下

一般的な規則は、「ソース管理にソースがあり、プロセスを繰り返す必要があるため、ビルド制御をソース管理に絶対に入れない」です。

PYCは、対応するPYファイルのアーティファクトです

1
Lazy Badger