【问题标题】:Private package was created and pip installed but cannot import with python已创建私有包并安装了 pip,但无法使用 python 导入
【发布时间】:2020-07-01 03:40:02
【问题描述】:

我在 TestPyPI 中创建了一个私有包

包已成功pip安装:

(base) my_user:Desktop$ python3 -m pip install --index-url https://test.pypi.org/simple/ --no-deps charter-common-utils==0.0.1
Looking in indexes: https://test.pypi.org/simple/
    Requirement already satisfied: charter-common-utils==0.0.1 in /Users/my_id/opt/anaconda3/lib/python3.7/site-packages (0.0.1)

我在终端启动python:

>>> import charter_common_utils
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'charter_common_utils'

我已阅读有关 python 路径问题的信息,但这似乎不是问题,因为列出的最后一条路径是上面“已满足要求”中提到的路径:

(base) SR-C02XT71WJG5J:Desktop p2929612$ python3
Python 3.7.6 (default, Jan  8 2020, 13:42:34) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/Users/my_id/opt/anaconda3/lib/python37.zip', '/Users/my_id/opt/anaconda3/lib/python3.7', '/Users/my_id/opt/anaconda3/lib/python3.7/lib-dynload', '/Users/my_id/.local/lib/python3.7/site-packages', '/Users/my_id/opt/anaconda3/lib/python3.7/site-packages']

当我关注/Users/my_id/opt/anaconda3/lib/python3.7/site-packages' 我可以看到文件charter_common_utils-0.0.1.dist-info

为什么我无法导入包?非常感谢任何帮助。

【问题讨论】:

    标签: path pip package package-managers sys


    【解决方案1】:

    您的setup.py 列出了很多顶级包:

        packages=['anomaly', 'batch_transform', 'hive_table_checker', 'metadata_io',
                  'parquet_converter', 'pyspark_visualizer'],
    

    安装后可以导入anomalyparquet_converter,但不能导入charter_common_utils;后者没有提到。要导入 charter_common_utils,您必须:

    1) 在源目录的顶部(setup.py 所在的位置)创建一个新目录charter_common_utils

    2) 新建一个空文件charter_common_utils/__init__.py

    3) 将所有顶级目录(anomalybatch_transformhive_table_checkermetadata_ioparquet_converterpyspark_visualizer)移动到charter_common_utils

    4) 更改您的setup.py

        packages=['charter_common_utils',
                  'charter_common_utils.anomaly',
                  'charter_common_utils.batch_transform',
                  'charter_common_utils.hive_table_checker',
                  'charter_common_utils.metadata_io',
                  'charter_common_utils.parquet_converter',
                  'charter_common_utils.pyspark_visualizer',
        ], 
    

    或者这样改setup.py

    from setuptools import find_packages()
    
    …
    
        packages=find_packages(),
    

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 2020-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多