zoukankan      html  css  js  c++  java
  • pycharm下调用自己的(python)py文件

    目录

    1. 同一个目录下
    2. 不同目录下
    3. 举例说明其它方法
    4. Pycharm下的调用问题

    一、同一个目录下

    调用同一个目录下的时,可以直接:

    1. import XXX.py
    2. from 文件夹 import XXX.py

    只是第一种形式会有波浪线提醒,不过不影响运行。

    波浪线问题消除见第四章

    二、不同目录下

    在上面基础上,加上层级名称即可

    当然也可以通过指定路径的方式处理,见第三章

    三、举例说明其它方法

    A

    |----- __init__.py

    |----- a.py

    |---------B

    |--------- __init__.py

    |---------b.py

    |---------C

    |--------- __init__.py

    |--------c.py

    如图所示结构树,B,C同属于A的子目录,但是B,C之间是平行的。。。

    b.py,c.py代码分别如下:

    b.py:

    def b_hello():

    print "B_HELLO"

    c.py:

    def c_hello():

    print "C_HELLO"

    3.1 如果Aa.py要调用B中或者Cpy

    则可以如下方式调用(以B为例)

    from B import b

    b.b_hello()

    运行结果:B_HELLO

    3.2 如果是B中或者Cpy调用B中或C

    这个时候如果我们依旧用如上所说调用,则会报错(这里是b.py调用c.py)

    >>>

    Traceback (most recent call last):

    File "E: estnowAB.py", line 1, in <module>

    from C import c

    ImportError: No module named C

    所以,这种方法不行,那如何做呢,如下

    import sys

    sys.path.append('E:\testnow\A\C')

    import c

    def b_hello():

    print "B_HELLO"

    c.c_hello()

    用这种方法,输出结果是:C_HELLO

    也即刚才上面的"from 文件夹 import 模块名"比较适用于父目录调用子目录的情况(当然也可以参照第二章的多个嵌套形式);而第二种方法则对所有的情况都适用,包括两个模块甚至都不在一个盘的情况。这里需要注意的一点是:sys.path添加目录时注意是在windows还是在linux下,windows下需要'\'否则会出错。(我在这点上走了很久的弯路)

    四、Pycharm下的调用问题

    pycharm在同目录下import,pycharm会提示错误,但是可以运行

    原因是: pycharm不会将当前文件目录自动加入自己的sourse_path。

    解决方案:右键make_directory as-->sources path将当前工作的文件夹加入source_path就OK了

  • 相关阅读:
    jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
    shell脚本,awk取奇数行与偶数行方法。
    shell脚本,awk取中间列的方法。
    shell脚本,每5个字符之间插入"|",行末不插入“|”。
    shell脚本,tee小工具的用法。
    shell脚本,逻辑结构题练习。
    shell脚本,实现奇数行等于偶数行。
    shell脚本,编程题练习。
    shell脚本,用awk实现替换文件里面的内容。
    shell脚本,awk替换{}里面的内容
  • 原文地址:https://www.cnblogs.com/yifanrensheng/p/13034644.html
Copyright © 2011-2022 走看看