include_package_data=True
লাইনটি সরানোর জন্য @ জো-র সুপারিশ অনুসরণ করাও আমার পক্ষে কাজ করেছিল।
আরও কিছুটা ব্যাখ্যা করতে গেলে আমার কাছে কোনও MANIFEST.in
ফাইল নেই। আমি সিভিএস নয়, গিট ব্যবহার করি।
সংগ্রহস্থল এই ধরণের আকার নেয়:
/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
?