चलाते समय उप-पैकेज पर आयात त्रुटि, मैं एक पायथन परियोजना के लिए एक इंस्टॉलेशन पैकेज बनाने के लिए एक इंस्टॉलेशन पैकेज बनाने की कोशिश कर रहा हूं जिसमें यूनिट परीक्षण शामिल हैं। मेरे परियोजना लेआउट इस प्रकार है:setup.py test
setup.py
src/
disttest/
__init__.py
core.py
tests/
disttest/
__init__.py
testcore.py
मेरे setup.py
इस तरह दिखता है:
from distutils.core import setup
import setuptools
setup(name='disttest',
version='0.1',
package_dir={'': 'src'},
packages=setuptools.find_packages('src'),
test_suite='nose.collector',
tests_require=['Nose'],
)
फ़ाइल tests/disttest/testcore.py
लाइन from disttest.core import DistTestCore
शामिल हैं।
setup.py test
चल रहा है अब ImportError: No module named core
देता है।
setup.py install
के बाद, python -c "from disttest.core import DistTestCore"
ठीक काम करता है। यह भी काम करता है अगर मैंने import core
src/disttest/__init__.py
में रखा है, लेकिन मैं वास्तव में इसे बनाए रखना नहीं चाहता हूं और यह केवल परीक्षणों के लिए आवश्यक लगता है।
वह क्यों है? और इसे ठीक करने का सही तरीका क्या है?
मुझे आश्चर्य है: क्या यह शायद setup.py test' से पहले 'setup.py install' करने का सामान्य अभ्यास है? [Setuptools प्रलेखन] (http://peak.telecommunity.com/DevCenter/setuptools#test) लगता है जैसे यह मामला नहीं है, मेरे स्रोतों को स्वचालित रूप से 'sys.path' पर रखा जाना चाहिए। शायद 'nose.collector' को मेरी' package_dir' आधार निर्देशिका के बारे में पता नहीं है? –
आप testcore.py में कोर कैसे आयात कर रहे हैं? आपके sys.path/PythonPATH में वास्तव में क्या है? – Almad