3
我一直在研究一個python包,現在我想將它變成一個小的RPM包。包包含幾個模塊,其中一個是可執行的。我可以用python setup.py bdist_rpm
創建RPM包,並將其安裝在帶有rpm
的fedora盒上。軟件包導入創建了一個模塊,子模塊仍然可導入
在這一點上有所需的命令myscript
它的作品就像一個魅力。但是當我嘗試在ipython
中導入包時,我遇到了一些奇怪的事情。我可以做以下
from myscript import sdf
import myscript.mol2
兩個工作完美,但
import myscript
myscript.sdf
拋出
AttributeError: 'module' object has no attribute 'sdf'
我一直在這工作了一段時間,現在也沒有用。有很多關於進口問題的問題,但我還沒有找到答案。
我應該改變以使其工作?
當前文件夾結構爲:
myscript/ #project root
setup.py
src/
myscript/
__init__.py
functions.py
sdf.py
mol2.py
runner.py
bin/
myscript #symbolic link to src/myscript/runner.py
setup.py
是:
from distutils.core import setup
setup(name = 'myscript',
version = '0.75',
author ='me',
requires = ['numpy'],
packages = ['myscript'],
package_dir = {'myscript':'src/myscript'},
scripts = ['bin/myscript']
)
和__init__.py
是:
__all__ = ['functions','sdf','mol2','runner']
我也這麼認爲,但安裝rpm後,'import myscript'會拋出'ImportError:無法導入名稱sdf'。該腳本崩潰到相同的錯誤。 – Pelanthoris 2015-04-07 17:02:15
我的不好,錯誤是因爲我沒有把'sdf.py'添加到我的git倉庫中,從那裏我已經把項目拉出來了。所以沒有'sdf.py'來導入。 – Pelanthoris 2015-04-07 17:28:52