簡體   English   中英

為什么我不能在 python 中導入自己的模塊?

[英]Why I can't import my own module in python?

我曾嘗試過使用 Flask 的應用程序。 我使用了我的包UsefulDeveloperTools 它的__init__.py是這樣的:( __init__.py

"""
Useful Tools.
"""

import threads
import IDgenerator

它的目錄是這樣的:(目錄

.
\ __init__.py
\ threads.py
\ IDgenerator.py

我將它推送到 TestPyPI中,並使用python3 -m pip install --upgrade --index-url https://test.pypi.org/simple/ --no-deps UsefulDeveloperTools在我的虛擬環境中安裝它。

我已經激活了我的環境,並運行以下代碼使用python3 main.py : (main.py)

import flask
from threading import Thread
import time
import random
import UsefulDeveloperTools # Error this
import logging

app=flask.Flask(__name__)
# unimportance

但是 python 引發了一個錯誤:(終端)

(Blog) phao@phao-virtual-machine:~/桌面/pypoj/Blog$ python3 main.py
Traceback (most recent call last):
  File "/home/phao/桌面/pypoj/Blog/main.py", line 5, in <module>
    import UsefulDeveloperTools
  File "/home/phao/桌面/pypoj/Blog/lib/python3.10/site-packages/UsefulDeveloperTools/__init__.py", line 5, in <module>
    import threads
ModuleNotFoundError: No module named 'threads'

為什么? 委屈什么? 我怎樣才能完成它?

PS 這是我環境中的包:(終端)

(Blog) phao@phao-virtual-machine:~/桌面/pypoj/Blog$ pip list
Package              Version
-------------------- -------
click                8.1.3
Flask                2.2.2
itsdangerous         2.1.2
Jinja2               3.1.2
Markdown             3.4.1
MarkupSafe           2.1.1
pip                  22.3.1
setuptools           59.6.0
UsefulDeveloperTools 0.2.2
Werkzeug             2.2.2

我猜你的__init__.py是錯誤的。 你必須把你的包名放在你的模塊名前面 innit.

查看這篇文章以了解 innit 樣式的不同選項:
https://towardsdatascience.com/whats-init-for-me-d70a312da583

編輯 我查看了您的回購協議,但您根本沒有遵循包裝指南。 您應該以適當的文件結構重新組織您的代碼並設置例如。 一個 pyproject.toml。

如果你已經制作了模塊,那么將它保存在與你的文件相同的目錄中並運行它。

暫無
暫無

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

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