Python import问题(1)

在写python时,有时候写的一个python文件可能需要被其他python文件所用,那么可以用导入包 import 的 方式:

 

1.自己写的包放到哪里?

1

2

3

>>> import sys

>>> sys.path

['', '/usr/lib64/python34.zip', '/usr/lib64/python3.4', '/usr/lib64/python3.4/plat-linux', '/usr/lib64/python3.4/lib-dynload', '/usr/lib64/python3.4/site-packages', '/usr/lib/python3.4/site-packages']

 可以看到上面列举了一些文件夹地址,那么自己写的包理论上都可以放到上述地址中,但有一些如”/usr/lib64/python3.4“并不推荐,比较推荐的是:“” , “'/usr/lib/python3.4/site-packages'”, “'/usr/lib64/python3.4/site-packages'”

 

2.如何导入自己写的包?

比如“/usr/lib/python3.4/site-packages”,如果我写了 一个 exp.py 文件放在这个文件下,那么我在自己的系统写的 python3 文件都可以采用 import exp 导入。

  还可以看到还有一个是“”,及当前文件夹,假如 存在如此的 一个 文件 结构:

1

2

3

4

5

parent/

        one/<br>         __init__.py

            exp.py

            exp2.py

        exp3.py

  exp.py和exp2.py都在one目录下,那么在exp2.py中可以通过 import exp 导入exp.py

  而exp3.py和one都处在parent目录下,那么在exp3.py中可以通过 import one.exp 导入exp.py

 

3.__init__.py的作用

  偶尔可以看到有些人写的包下面还会有一个__init__.py,它的作用是在导入包时首先执行的。

  假设在 exp3.py 中写入 import one.exp ,那么会首先执行 __init__.py 文件,接着会执行exp.py文件

  如果不需要,__init__.py可以为空,也可以干脆不加入__init__.py

 

4.if __name__ == "__main__"

  也有时候会看到 .if __name__ == "__main__" 语句,它的作用就是当此文件没有被作为导入的文件使用时执行 if 语句块里的程序。

  假如 exp.py 中加入了 if __name__ == "__main__" ,然后 python3 exp.py,就会执行这个语句块里的内容

  而 如果 if __name__ == "exp",时则是被 其他文件 以 "import exp"导入时执行的部分

  有如果是 if __name__ == "one.exp",时则是被 其他文件 以 "import one.exp"导入时执行的部分

  注意 在  "import exp"时是不会执行 if __name__ == "one.exp"中的内容的!同样: "import one.exp“是不会执行 if __name__ == "exp"中的内容的

5、不移动文件路径,即自己写的文件在默认路径下时候,可配置python 控制台环境

我们用pycharm打开自己写的代码,当多个文件之间有相互依赖的关系的时候,import无法识别自己写的文件,但是我们写的文件又确实在同一个文件夹中,

这种问题可以用下面的方法解决:

1)打开File--》Setting—》打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上

2)右键点击自己的工作空间,找下面的Mark Directory as 选择Source Root,就可以解决上面的问题了!

以上这篇解决Pycharm中import时无法识别自己写的程序方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值