Mam problem z użyciem setup.py
skonfigurować pakiet Pythona. Po pierwsze, mam następującą konfigurację katalogów:błąd importu na zainstalowanego pakietu przy użyciu setup.py
maindir
|- setup.py
|-mymodule
|- __init__.py
|- mainmodule.py
|-subdir
|- __init__.py
|- submodule.py
tj katalogu projektu zawiera setup.py
i katalog mymodule
, która sama w sobie zawiera dwa moduły Python w dwóch katalogach. Plik submodule.py
zawiera tylko
teststring = "hello world"
mainmodule.py
zawiera:
from .subdir import submodule
mainstring = "42"
i setup.py
zawiera:
import os
from setuptools import setup
setup(
name = "mytestmodule",
version = "0.0.1",
description = ("A simple module."),
packages=['mymodule'],
)
Kiedy zrobić from mymodule import mainmodule
z ipython
od wewnątrz sourceTest
zachowanie działa zgodnie z oczekiwaniami i ja może odnosić się np mainmodule.submodule.teststring
co daje mi ciąg hello world
.
Z drugiej strony, kiedy zainstalować ten „pakiet” z wykorzystaniem python setup.py install
i spróbować zrobić to samo (z poziomu innego katalogu), pojawia się błąd importowania:
In [1]: from mymodule import mainmodule
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
/home/alexander/<ipython-input-1-cf4c9bafa487> in <module>()
----> 1 from mymodule import mainmodule
/home/alexander/build/bdist.linux-i686/egg/mymodule/mainmodule.py in <module>()
ImportError: No module named subdir
ja nie wiem, co Zrobiłem źle, ponieważ podążałem za Getting started tutorial i rules for importing intra-packages. Przypuszczam, że mój błąd jest naprawdę mały, ale nie mogę go dostrzec i pomoc jest doceniana.
Czy to gdzieś zostało opisane? Czy jest jakaś dokumentacja dotycząca zawartości 'setup' na' distutils'?Niełatwo znaleźć reprezentatywną dokumentację. – Alex
Dodano łącze do przykładu z dokumentów. –
W celu uzyskania dalszych informacji, które wyjaśnia, w jaki sposób 'package_dir' jest używane rekursywnie do znajdowania podpakietów, pod warunkiem, że te podpakiety są wymienione w' pakietach ', przeczytaj [to] (https://docs.python.org/2/ distutils/setupscript.html # listing-whole-packages). –