0

我已经从 https://github.com/raamana/pyradigm制作了 python 包, 并使用以下命令将其上传pip(在遵循 pypi 等说明之后):

python setup.py sdist bdist_wheel
twine upload dist/*

理论上,现在应该可以做到

pip install pyradigm

(我可以确认有效),然后在 Python 文件中执行以下操作:

from pyradigm import MLDataset

使用MLDatasetpyradigm


不幸的是,情况并非如此,因为 Python 抛出了以下ImportError相当不具体的内容:

In [1]: from pyradigm import MLDataset
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-4ad7330da13e> in <module>()
----> 1 from pyradigm import MLDataset

ImportError: cannot import name MLDataset

我可以确认

  1. 我能够通过 pip 在新系统上安装 pyradigm
  2. pip 和 python 都能够找到包(安装在站点包中),因为它们会自动填充模块名称(pyradigm和类名MLDataset)。

pyradigm 中的 setup.py 是这样的:

#!/usr/bin/env python
import os

from setuptools import setup, find_packages

# Utility function to read the README file.
def read(fname):
    return open(os.path.join(os.path.dirname(__file__), fname)).read()

setup(name='pyradigm',
      version='0.1.1.2',
      description='Python-based data structure to improve handling of datasets in machine learning workflows',
      long_description=read('README.md'),
      keywords='machine learning, test dataset, python, workflow, provenance, data structure',
      author='Pradeep Reddy Raamana',
      url='https://github.com/raamana/pyradigm',
      packages=find_packages(exclude=["*.tests", "*.tests.*", "tests.*", "tests"]), # packages=['pyradigm'],
      install_requires=['numpy', 'setuptools'],
     )

该软件包只有 3 个文件:

__init__.py      pyradigm.py      test_pyradigm.py

仅包含__init__.py一行:

__all__ = [ 'pyradigm', 'MLDataset' ]

任何有助于理解此错误以及修复它的方法将不胜感激。谢谢。

4

1 回答 1

1

这是因为您pyradigm在包中有一个模块pyradigm

我已将软件包安装在virtualenvusing并pip install pyradigm成功导入MLDataset

from pyradigm.pyradigm import MLDataset


如果要导入为

from pyradigm import MLDataset

更新你__init__.py

from pyradigm import MLDataset
于 2017-03-09T19:15:31.133 回答