Я написал пакет для сбора данных и теперь пытаюсь взаимодействовать с ним для хранения и обслуживания указанных данных, но он не импортируется, хотя я установил его на pip. Это страница PyPI: https://pypi.org/project/smog-usage-stats/ репозиторий доступен здесь https://github.com/Stu-Gotz/smog_usage_stats извините, это любезно Я против правила минимальной воспроизводимости, но нет короткого способа включить весь пакет.
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 = "[email protected]" }]
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 <module>
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()
Я идиот, это не сработало, потому что указывало не на тот венв.
from smog_usage_stats import Usage
🤔 А знаете ли вы, что...
Python популярен в анализе данных и машинном обучении с помощью библиотеки scikit-learn.
Кажется, ваша структура проекта неверна. Обязательно следует структуре проекта.
smog_usage_stats/
├── src/
│ └── smog_usage_stats/
│ ├── __init__.py
│ ├── (Other Package Files)
├── pyproject.toml
└── setup.py
Следующий шаг — убедиться, что setup.py настроен правильно, а также все зависимости и правильная версия Python.
Наконец, вы можете попробовать установить его с помощью pip install. команда. Пожалуйста, поделитесь более подробной информацией об ошибке, если вы все еще сталкиваетесь с проблемой.