Questions tagged «python-import»

有关在Python中导入模块的问题

5
如何检查是否已导入python模块?
如何检查我是否在代码中的某个位置导入了模块? if not has_imported("somemodule"): print('you have not imported somemodule') 我想检查是否已经导入模块的原因是因为我有一个我不想导入的模块,因为有时会弄乱我的程序。

8
将一长串常量导入到Python文件
在Python中,是否存在类似C预处理程序语句的类似物? #define MY_CONSTANT 50 另外,我有大量的常数要导入几个类。是否有类似的方式将常量声明为类似于上述内容的长语句序列,.py然后将其导入另一个.py文件? 编辑。 该文件Constants.py显示为: #!/usr/bin/env python # encoding: utf-8 """ Constants.py """ MY_CONSTANT_ONE = 50 MY_CONSTANT_TWO = 51 并myExample.py写道: #!/usr/bin/env python # encoding: utf-8 """ myExample.py """ import sys import os import Constants class myExample: def __init__(self): self.someValueOne = Constants.MY_CONSTANT_ONE + 1 self.someValueTwo = Constants.MY_CONSTANT_TWO + 1 …

3
为什么使用sys.path.append(path)代替sys.path.insert(1,path)?
编辑:根据Ulf Rompe的评论,重要的是使用“ 1”而不是“ 0”,否则将破坏sys.path。 我已经使用Python已有一段时间了(一年多了),而对于人们为什么建议您使用sys.path.append()而不是python,我一直感到困惑sys.path.insert()。让我示范一下。 假设我正在开发一个名为PyWorkbooks的模块(该模块已安装在我的计算机上),但同时我正在开发另一个包含PyWorkbooks的模块(例如PyJob)。当我在PyJob上工作时,我在PyWorkbooks中发现了我要纠正的错误,因此我想导入一个开发版本。 有两种方法可以同时使用这两种方法(例如,我可以将PyWorkbooks项目放置在PyJob内),但是有时我仍然需要遵循这条路。但是,我不能简单地对sys.path.append()PyWorkbooks所在的文件夹执行a。为什么?因为python会先找到我安装的PyWorkbooks! 这就是为什么您必须执行sys.path.insert(1,path_to_dev_pyworkbooks)的原因 综上所述: sys.path.append(path_to_dev_pyworkbooks) import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one 要么: sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0** import PyWorkbooks # imports correct file 过去这给我带来了一些麻烦,如果我们(作为一个社区)开始推荐sys.path.insert(1, path),我真的很喜欢,就像您手动插入路径一样,我认为可以肯定地说这就是您想要的路径使用! 还是我有什么问题?这个问题有时会困扰我,我想在户外公开询问!

7
在python中安装lxml模块
在运行python脚本时,出现此错误 from lxml import etree ImportError: No module named lxml 现在我尝试安装lxml sudo easy_install lmxl 但这给了我以下错误 Building lxml version 2.3.beta1. NOTE: Trying to build without Cython, pre-generated 'src/lxml/lxml.etree.c' needs to be available. ERROR: /bin/sh: xslt-config: not found ** make sure the development packages of libxml2 and libxslt are installed ** 使用libxslt的构建配置 …

4
为什么Python模块有时不导入其子模块?
我注意到我今天想解释的东西很奇怪。我不是100%不确定如何将其表达为一个问题,所以google是不可能的。由于某些奇怪的原因,日志记录模块无法访问模块logging.handlers。如果您不相信我,请自己尝试: >>> import logging >>> logging.handlers Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'module' object has no attribute 'handlers' >>> import logging.handlers >>> logging.handlers <module 'logging.handlers' from '/usr/lib/python2.6/logging/handlers.pyc'> 谁能解释为什么会这样?

4
如何将模块“重新导入”到python,然后在导入后更改代码
我有一个 foo.py def foo(): print "test" 在IPython中,我使用: In [6]: import foo In [7]: foo.foo() test 然后,我将其更改foo()为: def foo(): print "test changed" 在IPython中,调用的结果仍然是test: In [10]: import foo In [11]: foo.foo() test 然后我用: In [15]: del foo In [16]: import foo In [17]: foo.foo() test 我删除了foo.pyc同一个文件夹中foo.py存在的文件夹,但仍然没有运气。 我可以知道如何在运行时重新导入更新的代码吗?

3
Python模块的绝对和显式相对导入
我想知道在Python应用程序中导入包的首选方法。我有一个这样的包结构: project.app1.models project.app1.views project.app2.models project.app1.views进口project.app1.models和project.app2.models。我想到有两种方法可以做到这一点。 绝对进口: import A.A import A.B.B 或具有明确的相对导入,如在Python 2.5中使用PEP 328引入的: # explicit relative from .. import A from . import B 什么是最pythonic的方式做到这一点?

4
进口订单编码标准
PEP8建议: 导入应按以下顺序分组: 标准库导入 相关第三方进口 本地应用程序/特定于库的导入 您应该在每组导入之间放置一个空白行。 有没有一种方法来检查,如果该标准违反了使用静态代码分析工具包的任何地方,比如pylint,pyflakes,pychecker,pep8? 违规示例: from my_package import my_module from django.db import models import os 正确的导入方式: import os from django.db import models from my_package import my_module

7
ImportError:没有名为模拟的模块
因此,我尝试使用unittest.mock模拟单元测试中的某些方法。我做: from unittest.mock import MagicMock f = open("data/static/mock_ffprobe_response") subprocess.check_output = MagicMock(return_value=f.read()) f.close() 但我得到: ImportError: No module named mock 我试过了: pip install mock 它仍然无法正常工作。

6
在python项目中使用相对路径读取文件
说我有一个Python项目,其结构如下: project /data test.csv /package __init__.py module.py main.py __init__.py: from .module import test module.py: import csv with open("..data/test.csv") as f: test = [line for line in csv.reader(f)] main.py: import package print(package.test) 当我运行时main.py,出现以下错误: C:\Users\Patrick\Desktop\project>python main.py Traceback (most recent call last): File "main.py", line 1, in <module> import package File "C:\Users\Patrick\Desktop\project\package\__init__.py", line …

7
Python中的循环导入依赖
假设我具有以下目录结构: a\ __init__.py b\ __init__.py c\ __init__.py c_file.py d\ __init__.py d_file.py 在a软件包的中__init__.py,将c导入软件包。但是c_file.py进口a.b.d。 程序失败,表示尝试导入b时不存在。(它实际上不存在,因为我们正在导入它。)c_file.pya.b.d 如何解决这个问题?

3
为什么Python的__import__需要fromlist?
在Python中,如果要以编程方式导入模块,则可以执行以下操作: module = __import__('module_name') 如果要导入子模块,您会认为这很简单: module = __import__('module_name.submodule') 当然,这是行不通的。你module_name又得到了。你所要做的: module = __import__('module_name.submodule', fromlist=['blah']) 为什么?fromlist只要它不是空的,它的实际值就似乎无关紧要。要求参数然后忽略其值的意义何在? Python中的大多数内容似乎都是有充分的理由完成的,但是出于我的一生,对于这种行为的存在,我无法提出任何合理的解释。

10
Python导入有什么好的经验法则?
我对使用Python导入模块的多种方式感到有些困惑。 import X import X as Y from A import B 我一直在阅读有关范围和名称空间的信息,但是我想获得关于什么是最佳策略,在什么情况下以及为什么使用的最佳实践建议。导入应该在模块级别还是方法/功能级别进行?在__init__.py或模块代码本身中? 尽管“ Python软件包-按类而不是文件导入”确实没有回答我的问题,尽管它显然是相关的。

1
尝试导入与内置模块同名的模块会导致导入错误
我有一个与内置模块冲突的模块。例如,中myapp.email定义的模块myapp/email.py。 我可以myapp.email在代码中的任何地方引用而不会出现问题。但是,我需要从我的电子邮件模块中引用内置电子邮件模块。 # myapp/email.py from email import message_from_string 它只找到自己,因此引发了一个ImportError,因为myapp.email它没有message_from_string方法。 import email当我尝试时会导致相同的问题email.message_from_string。 在Python中是否有任何本机支持可以执行此操作,还是我将“电子邮件”模块重命名为更具体的名称?

6
使用Python导入模块-最佳做法
我是Python的新手,因为我想扩展使用R学习的技能。在RI中,往往会加载一堆库,有时会导致函数名冲突。 什么是Python最佳实践。我看到了一些具体的变化,但我看不出它们之间的区别 import pandas,from pandas import *和 from pandas import DataFrame 前两者之间有什么区别,我应该只导入我需要的东西吗?同样,对于制作小型程序来处理数据和计算简单统计信息的人来说,最糟糕的后果是什么。 更新 我找到了这个出色的指南。它解释了一切。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.