terminal引入上层目录的模块,ModuleNotFoundError

2024-05-16 12:58

本文主要是介绍terminal引入上层目录的模块,ModuleNotFoundError,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

出现这个问题的根本原因是在PYTHONPATH中找不到,你需要做的是告诉python去哪里找这个包

option1:
在文件里引入这个module之前,通过sys.path.append()加入sys,path中,这个路径应该是整个包的路径(到上级目录为止)

import sys
sys.append(os.path.dirname(os.path.dirname(...os.path.abspath(__file__))))

可以通过ipython不断测试找到正确路径

option2:
将包路径加入PYTHONPATH中

export PYTHONPATH=/Users/xxx/Documents/yyy/insurance/KGBuild/ML

echo $PYTHONPATH发现已经存在这个目录

option3:
打开ipython

import sys
sys.path

然后会看到在sys.path中的路径,其中有个site-packages,这是安装python第三方包的时候存放的路径,所以我们也可以像安装第三方包一样将这个模块安装到site-package中。但是这个要自己写一个 setup.py ,目前我还不会写。

option4:
Python looks at the PYTHONPATH variable to setup its sys.path list on startup. But it also looks for special .pth files in the Python site-packages folder. (If you don’t know where the site-packages folder is, then that’s probably another StackOverflow question.)

The simplest .pth file contains a single line with a file path:

/path/containing/the/module/you/want/to/import

Python will pick that up and add it to the sys.path list.

Option 4:(还没实践过,不会,欢迎留言)
Use a virtual environment.
This isn’t directly a solution to your immediate problem, but I mention it for completeness. Python virtual environments allow you to contain all the dependencies for your application in a self-contained isolation chamber. All of the above (Options 1 through 3) still apply within a virtual environment, but sometimes a virtual environment helps to keep things tidy…and understandable.

If you can use virtualenvwrapper, it makes virtual environment management a breeze. Otherwise, you can use the low-level virtualenv (Python 2) and pyenv (Python 3) without much pain.

stackoverflow回答

这篇关于terminal引入上层目录的模块,ModuleNotFoundError的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994976

相关文章

Python利用自带模块实现屏幕像素高效操作

《Python利用自带模块实现屏幕像素高效操作》这篇文章主要为大家详细介绍了Python如何利用自带模块实现屏幕像素高效操作,文中的示例代码讲解详,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1、获取屏幕放缩比例2、获取屏幕指定坐标处像素颜色3、一个简单的使用案例4、总结1、获取屏幕放缩比例from

nginx-rtmp-module模块实现视频点播的示例代码

《nginx-rtmp-module模块实现视频点播的示例代码》本文主要介绍了nginx-rtmp-module模块实现视频点播,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习... 目录预置条件Nginx点播基本配置点播远程文件指定多个播放位置参考预置条件配置点播服务器 192.

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

SpringBoot项目引入token设置方式

《SpringBoot项目引入token设置方式》本文详细介绍了JWT(JSONWebToken)的基本概念、结构、应用场景以及工作原理,通过动手实践,展示了如何在SpringBoot项目中实现JWT... 目录一. 先了解熟悉JWT(jsON Web Token)1. JSON Web Token是什么鬼

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Python模块导入的几种方法实现

《Python模块导入的几种方法实现》本文主要介绍了Python模块导入的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录一、什么是模块?二、模块导入的基本方法1. 使用import整个模块2.使用from ... i