python import 模块导入路径
大家讲道理
大家讲道理 2017-04-17 11:03:34
[Python讨论组]

当前程序目录结构是这样的

main.py的代码:

#! /usr/bin/env python
# encoding:utf-8

from A import call_a
def main():
    call_a()
if __name__ == '__main__':
    main()

A.py文件的代码:

#! /usr/bin/env python
# encoding:utf-8
from B import call_b

def call_a():
	print "call_a"
	call_b()

B.py文件代码:

#! /usr/bin/env python
# encoding:utf-8
def call_b():
    print "Call_b"

当我通过bash命令运行脚本:

bogon:tests nooper$ python innermodules/main.py 
Traceback (most recent call last):
  File "innermodules/main.py", line 4, in <module>
    from A import call_a
ImportError: No module named A
bogon:tests nooper$ 

是不能识别模块的加载路径,但是能通过IDE-pycharm运行。如何通过shell来执行脚本main.py,还是需要对__init__.py文件进行加载包。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(3)
高洛峰
import sys
sys.path.append('..')

将父目录加入import路径

高洛峰

A.py 和 main.py 没有在同一个文件夹下
可以把A.py和main.py 放到同一个文件夹下 或者把A.py 加入import 路径
或者 from ..A import call_a

PHP中文网

可以直接通过pycharm来修改import的路径,具体pycharm版本不一样,对应按钮位置不一样,因此仅以文字说明。

file->Settings(Ctrl+Shift+s)->Project Setting->Project Interpreter->选择你的python版本->Interpreter Path->添加

你这里的话添加如下目录即可
**\tests
即project的根目录。

如果你在tests下有文件夹test2,其下有文件c.py。要引用c文件的c2
在你的main.py里面加入:
from test2.c import c2
路径是以你添加的路径的相对路径。。。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号