@Joe의 권고에 따라 include_package_data=True
라인 을 제거하는 것도 나에게 효과적 이었습니다.
좀 더 자세히 설명하기 위해 파일 이 없습니다 MANIFEST.in
. CVS가 아닌 Git을 사용합니다.
리포지토리는 다음과 같은 형태를 취합니다.
/myrepo
- .git/
- setup.py
- myproject
- __init__.py
- some_mod
- __init__.py
- animals.py
- rocks.py
- config
- __init__.py
- settings.py
- other_settings.special
- cool.huh
- other_settings.xml
- words
- __init__.py
word_set.txt
setup.py
:
from setuptools import setup, find_packages
import os.path
setup (
name='myproject',
version = "4.19",
packages = find_packages(),
# package_dir={'mypkg': 'src/mypkg'}, # didnt use this.
package_data = {
# If any package contains *.txt or *.rst files, include them:
'': ['*.txt', '*.xml', '*.special', '*.huh'],
},
#
# Oddly enough, include_package_data=True prevented package_data from working.
# include_package_data=True, # Commented out.
data_files=[
# ('bitmaps', ['bm/b1.gif', 'bm/b2.gif']),
('/opt/local/myproject/etc', ['myproject/config/settings.py', 'myproject/config/other_settings.special']),
('/opt/local/myproject/etc', [os.path.join('myproject/config', 'cool.huh')]),
#
('/opt/local/myproject/etc', [os.path.join('myproject/config', 'other_settings.xml')]),
('/opt/local/myproject/data', [os.path.join('myproject/words', 'word_set.txt')]),
],
install_requires=[ 'jsonschema',
'logging', ],
entry_points = {
'console_scripts': [
# Blah...
], },
)
python setup.py sdist
소스 배포를 위해 실행 합니다 (바이너리를 시도하지 않았습니다).
그리고 새로운 가상 환경 내부에 myproject-4.19.tar.gz
, 파일이 있고
(venv) pip install ~/myproject-4.19.tar.gz
...
그리고 내 가상 환경에 설치되는 모든 것 외에도 site-packages
이러한 특수 데이터 파일이 /opt/local/myproject/data
및에 설치됩니다 /opt/local/myproject/etc
.
data_files
하면 문제가 해결되었습니다. 그러나 이것은 오류가 발생하기 쉽고 나에게 "정확한 느낌"이 아닙니다. 누군가가 정말 있는지 확인 할 필요가 모두 구성 복제package_data
및data_files
?