from smog_usage_stats import UsageStatsLookup
import requests
if requests:
print("yes")
else:
print("no")
При тестировании выводится «да» (когда первая строка закомментирована), поэтому другие пакеты работают правильно. Я расставил все точки над «т» и все «и», и у меня нет опыта написания пакетов Python, поэтому я не уверен, что я сделал не так.
Это файловая структура проекта и ниже я вставил в свой pyproject.toml

# pyproject.toml
[build-system]
requires=["setuptools", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "smog_usage_stats"
version = "1.0.4"
dependencies = [
"beautifulsoup4",
"pathlib",
"psycopg==3.1.12",
"psycopg-binary==3.1.12",
"psycopg2==2.9.5",
"python-dateutil",
"python-dotenv",
"requests",
"soupsieve",
"typing_extensions",
]
readme = "README.md"
authors = [{ name = "stu.gotz.dev", email = "gotz.stu.dev@gmail.com" }]
license = { file = "LICENSE" }
classifiers = [
"License :: OSI Approved :: MIT License",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Operating System :: OS Independent"
]
keywords = ["pokemon", "usage", "pokemon showdown", "smogon"]
requires-python = ">=3.7"
[project.optional-dependencies]
dev = ["black", "bumpver", "isort", "pip-tools", "pytest"]
[tool.bumpver]
current_version = "1.0.4"
version_pattern = "MAJOR.MINOR.PATCH"
commit_message = "bump version {old_version} -> {new_version}"
commit = true
tag = true
push = true
[tool.bumpver.file_patterns]
"pyproject.toml" = [
'current_version = "{version}"',
'version = "{version}"'
]
"src/smog_usage_stats/__init__.py" = ["{version}"]
"setup.py" = [
"{version}",
"{pep440_version}",
]
"README.md" = [
"{version}",
"{pep440_version}",
]
а вот содержимое пакетов smog_usage_stats/src/smog_usage_stats/__init__.py:
import sys
import os
__version__ = "1.0.4"
__author__ = ""
# Get the parent directory
parent_dir = os.path.dirname(os.path.realpath(__file__))
# Add the parent directory to sys.path
sys.path.append(parent_dir)
РЕДАКТИРОВАТЬ
Я воспользовался советами некоторых людей из комментариев и ответов, и, похоже, это только еще больше навредило, поэтому я не уверен, что происходит, но он импортирует, однако, когда я запускаю его с помощью «кнопки воспроизведения» в VS Code, я получаю ModuleNotFoundError, но когда я запускаю py script.py в терминале (venv всегда активен), он выдает распечатку и не содержит ModuleNotFoundError.
(venv) PS C:\dev\gssp> & c:/dev/gssp/.venv/Scripts/python.exe c:/dev/gssp/data_collection.py
Traceback (most recent call last):
File "c:\dev\gssp\data_collection.py", line 1, in
from smog_usage_stats import Search
ModuleNotFoundError: No module named 'smog_usage_stats'
(venv) PS C:\dev\gssp> py data_collection.py
yes
и, как было предложено в другом ответе, это мой файл setup.py:
from setuptools import setup
setup()
Подробнее здесь: https://stackoverflow.com/questions/788 ... -importing