我的Python项目中有两个包(目录)
src
/textmining
mining.py...def mining():#...
__init.py....__all__ = ["mining"]
/crawler
crawler.py
in crawler.py I use the mining class
mining=mining()
main.py
__init__.py我的main.py如下:
scrapy_command = 'scrapy runspider {spider_name} -a crawling_level="{param_1}"'.format(spider_name='crawler/crawler.py',
param_1=crawling_level)
process = subprocess.Popen(scrapy_command, shell=True)当我运行crawler时,它提示runspider: error: Unable to load 'Crawler.py':cannot import name mining
发布于 2017-02-19 18:32:39
您需要在属于同一软件包模块的每个文件夹中都有一个__init__.py。
src
__init__.py
/textmining
__init__.py
mining.py
/crawler
__init__.py
crawler.pymain.py
from crawler import crawler
crawler.start_function()crawler.py
from src.textmining import mining
miner = mining()如果不将所有内容都转换为python模块,则必须通过添加以下路径将文件夹导入到当前脚本或__init__.py模块中:
# In crawler.py
import sys
import os
sys.path.append(os.path.abspath('../textmining'))
import mining然而,摆弄这条路需要你记住你已经做了什么,这可能不是你想要的。
https://stackoverflow.com/questions/42326033
复制相似问题