簡體   English   中英

pip 包的 Python 目錄不起作用

[英]Python directory for pip package not working

我制作了一個 pip 包,但我無法從文件“src”中導入內容? 我認為這可能與init .py 有關,但我不知道為什么。

這是我的目錄:

./
├── dist
│   └── robloxapi-0.9.tar.gz
├── LICENSE.txt
├── MANIFEST
├── README.md
├── robloxapi
│   ├── client.py
│   ├── __init__.py
│   ├── __main__.py
│   └── src
│       ├── __pycache__
│       │   ├── Auth.cpython-37.pyc
│       │   ├── __init__.cpython-37.pyc
│       │   ├── request.cpython-37.pyc
│       │   ├── User.cpython-37.pyc
│       │   └── xcsrf.cpython-37.pyc
│       ├── request.py
│       ├── User.py
│       └── xcsrf.py
├── setup.cfg
└── setup.py

這是我在主文件(client.py)中導入的內容

import requests
from .src.User import User

當我嘗試 import .src.User它返回一個錯誤。

女巫是:

Traceback (most recent call last):
  File "index.py", line 1, in <module>
    import robloxapi
  File "/home/ira/.local/lib/python3.7/site-packages/robloxapi/__init__.py", line 3, in <module>
    from .client import client
  File "/home/ira/.local/lib/python3.7/site-packages/robloxapi/client.py", line 2, in <module>
    from .src.User import User
ModuleNotFoundError: No module named 'robloxapi.src'

為什么我無法導入這個?

謝謝,艾拉。

編輯: Setup.pyhttps://hastebin.com/tonalezeva.coffeescript setup.cfghttps://hastebin.com/ovehukociz.ini

引發的錯誤ModuleNotFoundError表明 python 正在嘗試將robloxapi.src作為模塊導入。

根據你的項目結構,目錄應該是python包,但不是因為缺少__init__.py文件。

robloxapi/src/__init__.py (也可以留空)中創建一個文件應該可以解決這個問題。

引用關於模塊和包官方 python 文檔

需要__init__.py文件才能使 Python 將包含該文件的目錄視為包。 這可以防止具有通用名稱(例如字符串)的目錄無意中隱藏稍后出現在模塊搜索路徑上的有效模塊。 在最簡單的情況下, __init__.py可以只是一個空文件,但它也可以執行包的初始化代碼或設置__all__變量,稍后描述。

編輯

在查看您的 setup.py 文件后,我認為問題在於您沒有在傳遞給 setup 函數的packages列表中指定項目中的子packages

我還注意到您正在使用 distutils,我強烈建議您安裝並使用 setuptools 軟件包,它是內置 distutils 軟件包的一個非常流行的擴展。

setuptools 的一項重要功能是find_packages功能,它可以減輕管理要手動分發的包的負擔

這是對 setuptools 文檔的參考:

https://setuptools.readthedocs.io/en/latest/setuptools.html#id10

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM