【问题标题】:Python Package not including everythingPython 包不包括所有内容
【发布时间】:2015-05-03 01:02:19
【问题描述】:

我在 Ubuntu 12.04 上使用 Anaconda 和 Python 2.7。我创建了几个包,其中一个名为 mybasics,我在其中保存了一些我反复使用的类和工具。

这个包是一项正在进行中的工作,因为我在多年的 PHP 之后完全掌握了 Python 的速度。我最初创建的包只有 2 个文件,每个文件中包含几个类。包含这 2 个文件的目录现在还包含其他几个文件。

我遇到的问题是,在我导入并执行 dir(mybasics) 的最长时间内,只出现了原始的 2 个文件。我已经多次通过python setup.py install 重建了包。 python setup.py install 似乎适用于这两个文件中的更改,但不包括任何新文件。

包目录是这样的:

/home/gabe/python/lib/mybasics/
  ./bin
  ./build
  ./docs
  ./mybasics
    __init__.py
    cBaseClass.py
    cBeanstalk.py
    cHelpers.py
    ...
  setup.py

setup.py 文件很简单:

# -*- coding: utf-8 -*-

from distutils.core import setup

setup(
    name='mybasics',
    version='0.1.0',
    author='G Spradlin',
    author_email='gabe.spradlin@{removed}.com',
    packages=['mybasics'],
    package_dir={'mybasics':'mybasics'},
    scripts=[],
    url='',
    license='LICENSE.txt',
    description='Basic Python functions and Classes.',
    long_description=open('README.txt').read(),
)

__init__.py 文件为空:

# -*- coding: utf-8 -*-
"""
Created on Tue Sep  9 16:15:29 2014

@author: gabe
"""

所以在我写这篇文章的时候,最初没有一个新文件可以工作。 Spyder 崩溃了,我把它恢复了。瞧,除了最新的文件外,现在都按预期导入了。所以我再次使用'python setup.py install'重建它,关闭Spyder,重新启动机器。仍然没有继续最新的文件。

我想知道我是否缺少一些关于包裹的东西。它真的似乎只在这个包里。我还有其他几个也在进行中,我不记得他们曾经遇到过这个问题。

感谢您的任何帮助/建议。

【问题讨论】:

  • python setup.py install 不会“重建”软件包,而是将其安装到系统站点软件包(这可能不是一个好主意)。
  • 那么推荐的重建包的方法是什么?我需要卸载它并重新安装吗?
  • 我的意思是卸载和安装与“构建包”是正交的。

标签: python anaconda install.packages


【解决方案1】:

当您导入一个包时,它不会自动导入该包中的所有子模块。您需要将它们导入到您的__init__.py 文件中,或者明确地导入import mybasics.cBaseClass 等等。

【讨论】:

  • 是的,我在写这篇文章之前试过这个,为了以防万一。我可以使用from mybasics.cBaseClass import BaseClass。但是,这不适用于缺少的模块。
猜你喜欢
  • 1970-01-01
  • 2022-12-14
  • 2020-06-10
  • 1970-01-01
  • 2015-10-23
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
相关资源
最近更新 更多