python - Python在本地包中导入本地包时遇到问题
问题描述
这是我在这里的第一篇文章,我对 python 也很陌生,在过去的两天里,我一直在努力解决这个错误:
Traceback (most recent call last):
File "Main.py", line 6, in <module>
import PyScrape
File "/Users/arya/Desktop/Coding/Python/x/x/PyScrape/__init__.py", line 1, in <module>
from . import ProxyScraper
File "/Users/arya/Desktop/Coding/Python/x/x/PyScrape/ProxyScraper/__init__.py", line 6, in <module>
from . import FreeProxyList
ModuleNotFoundError: No module named 'ProxyScraper'
当尝试在“PyScrape”目录内的__init__.py
文件中导入“ProxyScraper”目录时,我的文件结构如下,如果我需要透露更多信息,请告诉我。
PyScrape/
__init__.py
ProxyChecker.py
ProxyScraper/
__init__.py
CheckerProxy.py
FreeProxyList.py
Hidester.py
HttpTunnel.py
PremProxy.py
SpysMe.py
Utility.py
__init__.py
“PyScrape”目录中的内容如下:
from . import ProxyScraper
from . import ProxyChecker
def Scrape():
return ProxyChecker.CheckProxyList(ProxyScraper.Scrape())
“ProxyScraper”目录内的内容__init__.py
如下: from threading import Thread from queue import Queue
from . import FreeProxyList
from . import Hidester
from . import CheckerProxy
from . import SpysMe
from . import HttpTunnel
SourceArray = ["FreeProxyList", "Hidester", "CheckerProxy", "SpysMe", "HttpTunnel"]
def Scrape():
WorkerList = []
ProxyQueue = Queue()
for Source in SourceArray:
Worker = Thread(name=Source, target=eval(Source + ".Scrape"), args=(ProxyQueue,))
WorkerList.append(Worker)
Worker.start()
for Worker in WorkerList:
Worker.join()
return ProxyQueue
解决方案
对于要导入的 python 模块,它的包含目录必须设置PYTHONPATH
在文件中的变量中$HOME/.bashrc
,例如,或者sys.path
在运行时显式插入。
一种解决方案是:
>>> import sys
>>> sys.path.insert(0, '/path/to/PyScrape')
另一个是:
$ echo 'export PYTHONPATH=$PYTHONPATH:/path/to/PyScrape' >> $HOME/.bashrc
$ source $HOME/.bashrc
请记住,而不是.bashrc
相关文件可能是.profile
.
当你设置PYTHONPATH
然后命令的结果:
>>> import sys
>>> sys.path
将包含您设置的路径,$PYTHONPATH
因为:
sys.path
是指定模块搜索路径的字符串列表。从环境变量 PYTHONPATH 初始化,加上依赖于安装的默认值。
推荐阅读
- ios - 使用 CameraRoll.save 后图片元数据丢失
- python - Raspberry Pi4 上的 Tkinter Python 自动启动
- powerbi-desktop - Power BI 切片器显示的日期多于可用日期
- python - pip install pyodbc failed 错误:pyodbc 的构建轮失败
- excel - 如何在excel公式中包含另一个单元格的内容
- java - 使用加速度计获取设备位移
- python - 使用 SageMaker 生命周期配置在启动时执行 jupyter notebook
- javascript - 我想实现这个光标交互
- java - 在 RedisConnectionFactory 中设置连接参数
- r - 在R中通过公共ID合并多个数据集