首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python打包无法导入类处理程序

Python打包无法导入类处理程序
EN

Stack Overflow用户
提问于 2017-02-19 18:16:21
回答 1查看 318关注 0票数 1

我的Python项目中有两个包(目录)

代码语言:javascript
复制
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如下:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2017-02-19 18:32:39

您需要在属于同一软件包模块的每个文件夹中都有一个__init__.py

代码语言:javascript
复制
src
    __init__.py
    /textmining
        __init__.py
        mining.py
    /crawler
        __init__.py
        crawler.py

main.py

代码语言:javascript
复制
from crawler import crawler

crawler.start_function()

crawler.py

代码语言:javascript
复制
from src.textmining import mining
miner = mining()

如果不将所有内容都转换为python模块,则必须通过添加以下路径将文件夹导入到当前脚本或__init__.py模块中:

代码语言:javascript
复制
# In crawler.py 
import sys
import os
sys.path.append(os.path.abspath('../textmining'))
import mining

然而,摆弄这条路需要你记住你已经做了什么,这可能不是你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42326033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档