为什么我不能在python中导入我自己的模块?

igsr9ssn  于 2022-12-24  发布在  Python
关注(0)|答案(2)|浏览(213)

我尝试了一个应用程序使用 flask 。我用my package 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运行以下代码:(主页面. 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'

为什么?什么委屈?我怎么能完成?
P.S.这是我的环境中的软件包:(终末)

(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
wh6knrhe

wh6knrhe1#

我看了你的repo,你根本没有按照打包指南来做。你应该重新组织你的代码,使其具有适当的文件结构,并设置一个pyproject.toml。
Python有一个关于打包的简单教程,你可以在这里找到:
https://packaging.python.org/en/latest/tutorials/packaging-projects.html
另外,你的__init__.py是错误的。有几个选项可以让你把导入到你的init文件中。接近你所尝试的是在模块名前放一个点。但我不知道这是否有帮助,在修复通用包之前。

"""
Useful Tools.
"""

import .threads
import .IDgenerator

查看这篇文章,了解init样式的不同选项:
https://towardsdatascience.com/whats-init-for-me-d70a312da583

58wvjzkj

58wvjzkj2#

如果你已经创建了模块,那么把它保存在和你的文件相同的目录下并运行它。

相关问题