• 写在前面
  • 解决方案
    • 情况一:目标模块与程序相差一级目录
    • 情况二:目标程序与模块相差两级或多级目录

写在前面

最近写Python需要导入自己写的模块,但是如果程序和模块不在同一级目录下,在命令行里面运行就会出现ModuleNotFoundError(这么说是因为在PyCharm里面设置根目录就能直接导入)。

不过为了程序以后迁移方便,下面说一下具体的方法。

解决方案

情况一:目标模块与程序相差一级目录

环境:
Windows 10 + Python 3.6.8

这种情况只需要在程序最上面加上:

import sys
sys.path.append('..')# 也可以采用如下方法,这种方法可以运行在Mac OS,Linux等系统,但也较为复杂
# 意思是从当前程序的目录往上进行路径的添加
# 注意__file__得到的路径还包括程序文件的路径
# 所以要比直接添加'..'多一个os.pardir
# import sys, os
# sys.path.append(
#           os.path.abspath(
#               os.path.join(
#                   __file__,
#                   os.pardir,
#                   os.pardir)))

在模块导入时就不会报错了。另外,像这样为了方便程序迁移的话,在导入自己的模块时候使用相对路径要好一些。

情况二:目标程序与模块相差两级或多级目录

针对目录相差两级的情况同理可以在程序首添加:

import sys
sys.path.append('..\\..')# import sys, os
# sys.path.append(
#           os.path.abspath(
#               os.path.join(
#                   __file__,
#                   os.pardir,
#                   os.pardir,
#                   os.pardir)))

相隔几级目录就加几个‘..’,本例为相差两级目录的情况。

Python引用任意位置模块方法总结相关推荐

  1. linux下python退出命令_Linux 下 Python按任意键退出方法

    某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,主要 ...

  2. 转载:python引用DLL文件的方法

    python引用DLL文件的方法 转载于:https://www.cnblogs.com/Regle/p/7003261.html

  3. Linux开发 python引用自定义的模块

    三个py文件放到同一目录下 (base) vvcat@ubuntu:~/Desktop/vvcat_test$ pwd /home/vvcat/Desktop/vvcat_test (base) vv ...

  4. python正则表达式之re模块方法介绍

    python正则表达式之re模块其他方法 1:search(pattern,string,flags=0) 在一个字符串中查找匹配 2:findall(pattern,string,flags=0) ...

  5. Arcgis桌面开发,Python引用GDAL库的方法

    我用的是arcgis10.2,python版本是arcgis自动安装的Pythin2.7 1.下载gdal-111-1700-core.msi和对应的GDAL-1.11.1.win32-py2.7.m ...

  6. python怎么爬取新浪微博数据中心_基于Python的新浪微博位置数据获取方法研究....

    [1] 新浪微博数据中心.2017微博用户发展报告[EB/OL].[2017-12-25]. http://data.weibo.com/report/reportDetail?id=404. [2] ...

  7. Python 技术篇-pip安装的python库缓存位置查看方法,如何查看python库源码

    用 pip install xxx 安装库时,pip 把库缓存在了:C:\Users\Administrator\AppData\Local\pip\cache, 我的用户是管理员,所以是 Admin ...

  8. python 光标位置输入文字_Python 移动光标位置的方法

    Python 移动光标位置的方法 更新时间:2019年01月20日 11:10:18 作者:你怎么知道你不会成功 今天小编就为大家分享一篇Python 移动光标位置的方法,具有很好的参考价值,希望对大 ...

  9. Python高级——正则表达式 re模块1.match方法

    python:正则表达式 一.什么是正则表达式 正则表达式也叫做匹配模式(Pattern),它由一组具有特定含义的字符串组成,通常用于匹配和替换文本. 正则表达式,是一个独立的技术,很多编程语言支持正 ...

最新文章

  1. Spring servlet
  2. 【从零学习OpenCV 4】opencv_contrib扩展模块的安装
  3. 一名合格的运维工程师的历练之路
  4. python英语-我们用程序整理出了一份Python英语高频词汇表,拿走不谢!
  5. SAP Spartacus user role页面的checkbox设计明细介绍
  6. LoadRunner 12.02 安装教程及中文语言包安装
  7. 【线段树】扇形面积并(P3997)
  8. fn:substring()函数
  9. 【华为云技术分享】敏捷实践:一周的Sprint太短,可以调吗
  10. 使用NodeJS将文件或图像上传到服务器
  11. 收敛数列有界的通俗理解
  12. idea 常用快捷键(windows键盘映射)
  13. JVM垃圾收集算法及垃圾收集器
  14. XtraReport报表控件
  15. 诺基亚 java 软件_初学篇:诺基亚手机软件安装不求人
  16. push代码至gitee码云报错unable to access ‘https://gitee.com/*/git/‘: The requested URL returned error: 403
  17. sysfader iexplore 应用程序错误问题解决方法.
  18. 利用photoshopcs6将gif格式图片变为背景透明
  19. RK3399 Android7.1以太网卡百兆网正常千兆网不能用
  20. SOLID原则 【转】

热门文章

  1. wepy-微信小程序诡异错误
  2. JavaScript小知识点(二):函数防抖和节流
  3. GCD和NSThread延时执行对比
  4. 如何在excel 单元格中增加换行
  5. leetcode 1170 python
  6. oracle 查询dbid,查看oracle 数据库的DBID
  7. PAT乙级(1001 害死⼈不偿命的(3n+1)猜想)
  8. python 字符串替换换行,Python fstring:替换换行符/lineb
  9. 一文了解MySQL的Buffer Pool
  10. 云小课|DGC数据开发之基础入门篇