pip安装后Python自制包导入错误

时间:2017-12-11 16:27:00

标签: python pip package python-import

如果我制作一个非常简单的包(带有空__init__.py个文件):

package_name/
    package_name/
         sub_module/
              __init__.py
              file.py  
         __init__.py
    setup.py

当我在这个项目的根目录下启动Python shell时,执行:

import package_name.sub_module.file

一切顺利,我可以使用file.py中的功能。但是如果我在GitLab上发送这个项目,并将pip安装在另一个本地项目中并以相同的方式导入它,我会收到以下错误:

ModuleNotFoundError: No module named 'package_name.sub_module'

我试图以多种方式修改__init__.py文件,但我找不到有用的东西。我不明白为什么会这样。

编辑:以下是setup.py文件的内容:

from setuptools import setup

setup(name='package_name',
      version='0.1',
      description='My package',
      url='https://gitlab.myserver.com/package_name',
      author='Me',
      author_email='me@myserver.com',
      license='MIT',
      packages=['package_name'],
      install_requires=[
          'another_package_1',
          'another_package_2'
      ],
      zip_safe=False)

要使用pip安装软件包,我使用命令:

pip install git+https://gitlab.myserver.com/package_name.git

1 个答案:

答案 0 :(得分:0)

在此网站上查看https://docs.python.org/3/distutils/setupscript.html
你必须声明项目结构中的每个子文件夹

packages = [' an_example_pypi_project',' tests'],

tkinter
|-- an_example_pypi_project
|   |-- __init__.py
|   |-- useful_1.py
|   |-- useful_2.py
|-- tests
|-- |-- __init__.py
|-- |-- runall.py
|-- |-- test0.py

packages = [' an_example_pypi_project',an_example_pypi_project.subfolder,' tests'],