python在windows下import其他模块的注意事项

简介: 初学python,在同一目录中创建了两个py文件:a.py和b.py,然后在a.py中import b.pyfrom . import b......在linux下执行没有问题,但是在windows下就提示  ImportError: cannot import name 'b'在网上搜了半天也没有找到问题所在,后来还是在google上找到了答案。

初学python,在同一目录中创建了两个py文件:a.py和b.py,然后在a.py中import b.py

from . import b
......

在linux下执行没有问题,但是在windows下就提示  ImportError: cannot import name 'b'

在网上搜了半天也没有找到问题所在,后来还是在google上找到了答案。

原来是python会在sys.path下去找import的python文件,我输出了一下sys.path:

import sys
print(sys.path)

sys.path里并没有我的项目文件夹,所以import的时候就会出错,用以下代码即可解决:

import sys
import os
sys.path[0]=os.path.dirname(os.path.realpath(__file__))
from . import b
然后再 from . import b 就ok了!


如果更完善些,可以判断一下当前的运行环境,如果是linux,就不用设置sys.path了

import platform
 
def isWindowsSystem():
    return 'Windows' in platform.system()
 
def isLinuxSystem():
    return 'Linux' in platform.system()

if isWindowsSystem() :
    import sys
    import os
    sys.path[0]=os.path.dirname(os.path.realpath(__file__))
from . import b


还有另外一种更简单的办法:

import sys
sys.path.append("./")

import a



相关文章
|
1天前
|
5G Python
Windows11搭建Python环境(Anaconda安装与使用)
Windows11搭建Python环境(Anaconda安装与使用)
9 0
|
2天前
|
开发者 Python
Python的os模块详解
Python的os模块详解
14 0
|
5天前
|
数据挖掘 API 数据安全/隐私保护
python请求模块requests如何添加代理ip
python请求模块requests如何添加代理ip
|
6天前
|
测试技术 Python
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
Python 有趣的模块之pynupt——通过pynput控制鼠标和键盘
|
6天前
|
Serverless 开发者 Python
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
《Python 简易速速上手小册》第3章:Python 的函数和模块(2024 最新版)
39 1
|
8天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
49 0
|
10天前
|
Python
python学习14-模块与包
python学习14-模块与包
|
11天前
|
SQL 关系型数据库 数据库
Python中SQLite数据库操作详解:利用sqlite3模块
【4月更文挑战第13天】在Python编程中,SQLite数据库是一个轻量级的关系型数据库管理系统,它包含在一个单一的文件内,不需要一个单独的服务器进程或操作系统级别的配置。由于其简单易用和高效性,SQLite经常作为应用程序的本地数据库解决方案。Python的内置sqlite3模块提供了与SQLite数据库交互的接口,使得在Python中操作SQLite数据库变得非常容易。
|
14天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
14天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。