首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python setuptools开发命令:“没有名为.”的模块

Python setuptools开发命令:“没有名为.”的模块
EN

Stack Overflow用户
提问于 2014-04-07 22:21:47
回答 1查看 2.2K关注 0票数 5

我正在尝试使用setuptools的developed命令来安装我开发的python包。

sidenote:网络上有大量令人困惑的信息(distutils,distutils2,setuptools,distribute)。据我所知,setuptools和development是使用正在开发的代码的最现代/最佳实践方法。也许我错了。

我所做的是:

(1)我用我的__init__.py代码在目录中放置了一个空的Python。

(2)我制作了一个setup.py:

代码语言:javascript
复制
from setuptools import setup, find_packages
setup(name = "STEM_pytools",
      version = "0.1",
      packages = find_packages(),

      author = "Timothy W. Hilton",
      author_email = "my@email.address",
      description = "visualization and data pre-/post-processing tools for STEM",
      license = "",
      keywords = "STEM",
      url = "")

(3)我跑

代码语言:javascript
复制
python setup.py develop

这似乎没有问题。

然而,当我尝试使用这个包时,我得到:

代码语言:javascript
复制
>>> import STEM_pytools
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named STEM_pytools

安装命令也会发生同样的情况:它的输出看起来没问题,然后是“没有模块名为STEM_pytools”。我把头发扯掉了。如有任何建议请见谅!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-08 16:09:58

我解决了这个问题,虽然我仍然不完全理解为什么它现在起作用,以前也不起作用。我的setup.py和我的项目的目录结构似乎没有成功地交互。

这是与我的setup.py一起工作的目录结构:

代码语言:javascript
复制
STEMpytools/
    setup.py
    stem_pytools/
        __init__.py
        source1.py
        source2.py
        ...
        sourceN.py

这个目录结构无法工作,至少在与我的setup.py配对时是这样的:

代码语言:javascript
复制
STEMpytools/
    setup.py
    __init__.py
    source1.py
    source2.py
    ...
    sourceN.py

这个解释对我很有帮助:http://bashelton.com/2009/04/setuptools-tutorial/

现在,从python解释器中,这两种方法都可以工作:

代码语言:javascript
复制
import stem_pytools
import stem_pytools.source1

在我的系统上进行的实验表明,有必要将__init__.py和包源代码放在包含setup.py的根目录下的子目录下。从setuptools和distutils文档中,我不确定为什么会出现这种情况。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22924189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档