[英]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.py
: https://hastebin.com/tonalezeva.coffeescript setup.cfg
: https://hastebin.com/ovehukociz.ini
引發的錯誤ModuleNotFoundError
表明 python 正在嘗試將robloxapi.src
作為模塊導入。
根據你的項目結構,目錄應該是python包,但不是因為缺少__init__.py
文件。
在robloxapi/src/__init__.py
(也可以留空)中創建一個文件應該可以解決這個問題。
需要
__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.