python - 制作 setup.py 并运行“pip install -e”后出现 ModuleNotFoundError。
问题描述
我正在尝试使用路径“C:\Users\myName\dir1\2020\Indeed-Scraper\database\database.py”将类 SqlQuery、SqlPost 和 SqlPage从文件“database.py”导入文件。我的第一次尝试是使用相对导入:我认为这会起作用,因为“数据库”文件夹比. 不是这样。那回来了。Query.py
from ...database.database import SqlQuery
Query.py
ValueError: attempted relative import beyond top-level package
我在 StackOverflow 上发布了有关此内容的信息,一位乐于助人的用户提出了此修复建议:“setup.py
为您的项目制作一个。然后运行pip install -e
”。
好吧,我试过了。我现在setup.py
在项目的根目录中有一个文件夹,如下所示:
import setuptools
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="indeedscraper",
version="0.1.1",
author="myName",
author_email="myName@provider.com",
description="A tool used to scrape & display data from Indeed",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/myUsername/myProject",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
)
我pip install -e .
在项目的根目录中运行。现在 PyCharm 将“”自动完成from in
为“ from indeedscraper
”,所以有些东西发生了变化。但from indeedscraper.database.database import SqlQuery
仍然给我:
Traceback (most recent call last):
File "C:/Users/myName/dir1/2020/Indeed-Scraper/scraper/classes/Query.py", line 17, in <module>
from indeedscraper.database.database import SqlQuery
ModuleNotFoundError: No module named 'indeedscraper'
关于如何进行的任何建议?我有点卡在这里学习制作一个包并从该包导入,因为另一种方法是从我的“database.py”文件中复制大约 50 行代码,这很难看。
编辑:我__init__.py
的顶级目录“database.py”和包含我要导入的文件的目录中确实有文件。像这样:
project_name/
__init__.py
database/
__init__.py
database.py
scraper/
__init__.py # I do have this file here, sorry, didn't realize it was important
classes/
__init__.py
Query.py
Edit2:我意识到问题可能源于我使用 Anaconda 的事实。我在 Query.py 中正确导入,但 PyCharm 中输出的前 2 行显示为:“C:\Users\myname\Anaconda3\envs\august_2019_django_project\python.exe C:/Users/myname/dir1/2020/Indeed-刮板/刮板/类/Query.py”
会是这样吗?
解决方案
推荐阅读
- powerquery - 使用正则表达式拆分 Excel 电源查询列
- python - 将变量分配给列表中的元组
- sql - 2个表的SQL
- javascript - 我在复选框中有两个列表,一个我已经检查了一个最初没有检查
- mysql - 警告:mysql_connect():无法通过套接字连接到本地 MySQL 服务器
- go - Golang proto 文件管理和导入
- c - 在 C 中,如何从字符串中取出两个字符,并将它们分配为自己的字符串?
- python - mongodb 连接字符串 uri 在 Kubernetes 中不起作用
- azure - Azure Devops - 将用户添加到组织而不分配项目集合管理员
- android - 如何在android中控制添加视图?