标签: python-import

如何导入上面目录中的Python类?

我想继承一个位于当前目录之上的文件中的类.

是否可以相对导入该文件?

python directory module python-import

178
推荐指数
6
解决办法
17万
查看次数

ModuleNotFoundError:__main__不是包是什么意思?

我试图从控制台运行一个模块.我的目录结构是这样的:

在此输入图像描述

我正在尝试运行模块p_03_using_bisection_search.py,从problem_set_02目录使用:

$ python3 p_03_using_bisection_search.py
Run Code Online (Sandbox Code Playgroud)

里面的代码p_03_using_bisection_search.py是:

__author__ = 'm'


from .p_02_paying_debt_off_in_a_year import compute_balance_after


def compute_bounds(balance: float,
                   annual_interest_rate: float) -> (float, float):

    # there is code here, but I have omitted it to save space
    pass


def compute_lowest_payment(balance: float,
                           annual_interest_rate: float) -> float:

    # there is code here, but I have omitted it to save space
    pass    

def main():
    balance = eval(input('Enter the initial balance: '))
    annual_interest_rate = eval(input('Enter the annual interest rate: '))

    lowest_payment …
Run Code Online (Sandbox Code Playgroud)

python module python-import python-3.6

161
推荐指数
5
解决办法
19万
查看次数

如何检查python模块是否存在而不导入它

我需要知道是否存在python模块,而不导入它.

导入可能不存在的东西(不是我想要的东西):

try:
    import eggs
except ImportError:
    pass
Run Code Online (Sandbox Code Playgroud)

python python-import

152
推荐指数
8
解决办法
14万
查看次数

为什么Python在导入时会运行我的模块,如何阻止它?

我有一个我正在构建的Python程序,它可以用以下两种方式之一运行:第一种是调用"python main.py",它以友好的方式提示用户输入,然后通过程序运行用户输入.另一种方法是调用"python batch.py -file- ",它将通过所有友好的输入收集并通过程序一次性运行整个文件的输入值.

问题是,当我运行"batch.py​​"时,它会从"main.py"导入一些变量/方法/ etc,并在运行此代码时:

import main
Run Code Online (Sandbox Code Playgroud)

在程序的第一行,它立即出错,因为它试图在"main.py"中运行代码.

如何阻止Python运行我正在导入的"main"模块中包含的代码?

python module python-import

150
推荐指数
5
解决办法
13万
查看次数

兄弟姐妹包进口

我已经尝试阅读有关兄弟进口甚至 包文档的问题,但我还没有找到答案.

具有以下结构:

??? LICENSE.md
??? README.md
??? api
?   ??? __init__.py
?   ??? api.py
?   ??? api_key.py
??? examples
?   ??? __init__.py
?   ??? example_one.py
?   ??? example_two.py
??? tests
?   ??? __init__.py
?   ??? test_one.py
Run Code Online (Sandbox Code Playgroud)

如何在脚本 examplestests目录从导入 api模块,并可以从命令行运行?

此外,我想避免sys.path.insert每个文件的丑陋黑客.当然这可以在Python中完成,对吧?

python packages siblings python-import

149
推荐指数
7
解决办法
7万
查看次数

排序Python`import x`和`from x import y`语句的正确方法是什么?

蟒蛇风格指南建议对进口组这样的:

应按以下顺序对导入进行分组:

  1. 标准库导入
  2. 相关的第三方进口
  3. 本地应用程序/库特定导入

但是,它没有提到应该如何规划两种不同的进口方式:

from foo import bar
import foo
Run Code Online (Sandbox Code Playgroud)

有多种方法可以对它们进行排序(让我们假设所有这些导入都属于同一个组):

PEP8没有提到这个的首选顺序和"清理导入"功能,一些IDE可能只是做该功能的开发人员所喜欢的任何东西.

我正在寻找另一个PEP澄清这个或来自BDFL(或其他Python核心开发人员)的相关评论/电子邮件.请不要发表陈述您自己偏好的主观答案.

python coding-style pep8 python-import

148
推荐指数
5
解决办法
4万
查看次数

如何动态加载Python类

给定一个Python类的字符串,例如my_package.my_module.MyClass,加载它的最佳方法是什么?

换句话说,我正在寻找Class.forName()Java中的等效函数,Python中的函数.它需要在Google App Engine上运行.

最好这是一个函数,它接受类的FQN作为字符串,并返回对类的引用:

my_class = load_class('my_package.my_module.MyClass')
my_instance = my_class()
Run Code Online (Sandbox Code Playgroud)

python reflection python-import

147
推荐指数
6
解决办法
13万
查看次数

在Python中,当您在函数内部导入时会发生什么?

在速度和内存效率方面,在函数内导入Python模块和/或函数的优缺点是什么?

是否每次运行该函数时重新导入,或者可能只在开始时重新导入一次,无论函数是否运行?

python python-import

142
推荐指数
5
解决办法
8万
查看次数

从__future__导入absolute_import实际上做了什么?

我已经回答了一个关于Python绝对导入的问题,我认为我在阅读Python 2.5更新日志和随附的PEP时理解了这一点.但是,在安装Python 2.5并尝试制作正确使用的示例时from __future__ import absolute_import,我意识到事情并不那么清楚.

直接从上面链接的更改日志,这句话准确地总结了我对绝对导入更改的理解:

假设你有一个像这样的包目录:

pkg/
pkg/__init__.py
pkg/main.py
pkg/string.py
Run Code Online (Sandbox Code Playgroud)

这定义了一个名为pkg包含pkg.mainpkg.string子模块的包.

考虑main.py模块中的代码.如果它执行语句会发生什么import string?在Python 2.4和更早的版本,它会先在包的目录进行相对进口看,发现包装/ string.py,导入该文件的内容pkg.string模块,并且该模块被绑定到名字"string"pkg.main模块的名称空间.

所以我创建了这个确切的目录结构:

$ ls -R
.:
pkg/

./pkg:
__init__.py  main.py  string.py
Run Code Online (Sandbox Code Playgroud)

__init__.py并且string.py是空的.main.py包含以下代码:

import string
print string.ascii_uppercase
Run Code Online (Sandbox Code Playgroud)

正如所料,使用Python 2.5运行它失败了AttributeError:

$ python2.5 pkg/main.py
Traceback (most recent call last):
  File "pkg/main.py", line 2, in <module>
    print string.ascii_uppercase
AttributeError: …
Run Code Online (Sandbox Code Playgroud)

python python-2.5 python-import python-2.7

139
推荐指数
2
解决办法
8万
查看次数

为什么"进口*"不好?

建议不要import *在Python中使用.

任何人都可以分享原因,以便我下次可以避免它吗?

python python-import

136
推荐指数
10
解决办法
5万
查看次数