社区首页 >问答首页 >在Python 2中安全导入带有Unicode名称的模块

在Python 2中安全导入带有Unicode名称的模块
EN

Stack Overflow用户
提问于 2015-10-07 10:00:44
回答 1查看 290关注 0票数 1

(Python 2.6)

我有一些基于客户端名称进行定制的代码。

它会做这样的事情:

custom_module = __import__("some.module.company_inc")

只要我们的客户有唯一的名字就行了。

我也想让这个代码对非ascii公司的名字正确工作。

custom_module = __import__(u"some.module.unicóde_company_inc")

但是,__import__只接受字节,所以我需要首先对其进行编码。

__import__(u"some.module.unicóde_company_inc".encode(sys.getfilesystemencoding())是否保证在所有系统上工作(当然,假设文件系统编码支持"ó“)?这样做对吗?(假设我不静态地知道该框使用的编码)

我对linux系统最感兴趣。(但也很高兴知道非linux的情况)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-07 11:22:45

严格地说,sys.getfilesystemencoding()有可能在某些情况下返回None (例如,如果没有设置LANG )。因此,回到"utf-8“可能会稍微安全一些,以允许这种可能性(不太可能):

代码语言:javascript
代码运行次数:0
复制
    encoding = sys.getfilesystemencoding() or 'utf-8'

这将涵盖99.9%的案件。对于其余的部分,我只允许应用程序引发一个异常(因为它就是这样的),然后优雅地抛出一条信息丰富的错误消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32999307

复制
相关文章
【Python】模块导入 ① ( Python 模块简介 | 模块概念 | 模块作用 | 模块特点 | 常见的 Python 模块 | Python 模块导入 | Python 模块导入语法 )
Python 模块 就是一个以 .py 为后缀的 Python 代码文件 , 在模块中定义有 :
韩曙亮
2023/10/11
2600
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
该方法用于 导入完整的模块 , 包括模块中的 函数 / 变量 / 类 / 代码块 等 ;
韩曙亮
2023/10/11
2490
【Python】模块导入 ② ( 模块导入语法 | 导入完整模块 | import 导入完整模块 | from 导入完整模块 )
Python在不同目录下导入模块的方法
python在不同层级目录import模块的方法 使用python进行程序编写时,经常会调用不同目录下的模块及函数。本篇博客针对常见的模块调用讲解导入模块的方法。
李智
2018/08/03
3K0
python模块导入
[seemmo@RegionServer1 duwen]$ python Python 2.6.6 (r266:84292, Nov 22 2013, 12:16:22) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information.
py3study
2020/01/14
1.5K0
Python 导入模块
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 导入模块 更多内容请见👇 Python 入门基础专栏 Python 字符串 Python 常用字符串方法 ---- Python 导入模块 1.import 模块名 2.import 模块名 as 名称缩写 3.import 模块名.子模块名 as 名称缩写 4.from 模块名 import 函
小嗷犬
2022/11/15
1.3K0
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
在导入模块时 , 有时不需要使用模块的完整功能 , 只需要导入指定的部分功能即可 , 这样也符合最少知识设计原则 ;
韩曙亮
2023/10/11
2980
【Python】模块导入 ③ ( 模块导入语法 | from 导入部分模块功能 | 为导入的模块设置别名 | import 导入模块设置别名 | from 导入模块设置别名 )
Python导入模块的方法
Python导入模块的方法有两种:import module 和 from module import a,区别是前者所有导入的东西使用时需加上模块名的限定(module.a),而后者不需要。
py3study
2020/01/17
1.6K0
【Python】模块导入 ④ ( 自定义模块 | 制作自定义模块 | 使用 import / from 导入并使用自定义模块中的函数 | 导入自定义模块功能名称冲突问题 )
在另外的文件中 , 导入 my_module 模块 , 然后通过 my_module.add 调用 my_module 模块中的 add 函数 ;
韩曙亮
2023/10/11
7300
【Python】模块导入 ④ ( 自定义模块 | 制作自定义模块 | 使用 import / from 导入并使用自定义模块中的函数 | 导入自定义模块功能名称冲突问题 )
Python import导入模块 - reload() 导入的内容
模块被导入后,import module不能重新导入模块,重新导入需用reload
Devops海洋的渔夫
2019/06/02
3.1K0
1 - 导入python 模块
1. 导入python 模块的基本方式 2. 为导入的python 模块指定别名 import math from math import cos, tan from math import * print(math.sin(1.23)) print(cos(2.34)) print(tanh(1.23)) # 指定别名 as # 一旦指定了别名,原来的名字就不能用了 import math as mt print(mt.sin(2)) from math import cos as cs print
ruochen
2021/05/22
1.3K0
1 - 导入python 模块
python 模块导入问题
在python中,模块导入和编码都是比较重要的,这两种东西一定要花时间弄清楚,如果摸棱两可,每次出问题都靠猜,那是非常痛苦的。
叶子陪你玩
2022/05/22
1.7K0
python 模块导入问题
python模块导入细节
官方手册:https://docs.python.org/3/tutorial/modules.html
py3study
2020/01/18
1.9K0
python中导入模块的妙用
导入的关键词英文是import,这里注意大小写。我们可以将import直译理解成导入。我们需要导入的是模块。所谓模块其实就是别人写好的库,说白了就是人家写好的代码供我们二次开发使用。
刘金玉编程
2019/08/20
1.3K0
Python 导入模块中的类
在看代码时发现Python的导入类也可以用“.”的方式,很是惊奇,记录下来: 如以下代码:其所在文件(模块)为test.py
用户7886150
2020/12/24
2.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
首先先准备两个模块,md_01_测试模块1和 md_02_测试模块2,然后在demo文件中导入模块并使用工具。
python自学网
2022/10/05
3.3K0
【Python模块】- 如何导入和使用模块?模块导入方式有哪些?
pycharm导入自定义模块_模块导入速度python
Pycharm是很多Python开发者的首选IDE,如果能把一个工具熟练运用,往往有事半功倍的效果,各种快捷键、重构功能、调试技巧。由于Python是一门动态语言,对于自动导入包模块没有静态语言那么方便,但是我们有了Pycharm,还是可以很强大的。
全栈程序员站长
2022/09/27
1.4K0
pycharm导入自定义模块_模块导入速度python
Pycharm 导入 Python 包、模块
1.点击 File->settings 2.选择 Project Interpreter,点击右边绿色的加号添加包 3.输入你想添加的包名,点击 Install Package 4.可以在 Pycharm 保存项目的目录下查看已经安装的包,路径 D:\PycharmProjects\untitled\venv\Lib\site-packages
用户1685462
2021/07/26
2K0
python动态导入库模块
最近在实现一个基于深度学习的数据扩增方法,为了测试多种方法,需要一个框架型的程序动态调用model。在这种需求下,框架代码就需要动态扫描models目录下的所有模型,并动态导入。
羽翰尘
2019/11/20
2.4K0
pycharm导入pandas模块_pycharm如何导入python的库
网上有些反应安装pandas库时会出现问题,提示好像是pip的原因。 这时候大概是自己的pip版本太久啦。所以最好先在cmd更新一下pip好了。
全栈程序员站长
2022/09/26
3.2K0
pycharm导入pandas模块_pycharm如何导入python的库
python—模块导入和类
1.查询模块:按目录依次查找需要导入的模块,模块目录一般在:/usr/lib64/python2.7
py3study
2020/01/09
1.7K0

相似问题

如何动态导入带有超时的不安全Python模块?

10

Python扭曲的ImportError:无法导入名称unicode

14

python确定导入模块的名称

32

Python:导入带有参数的模块?

215

带有iis导入模块的Python

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档