相关疑难解决方法(0)

如何在Python中复制文件?

如何在Python中复制文件?

我找不到任何东西os.

python filesystems copy file file-copying

2171
推荐指数
18
解决办法
174万
查看次数

从相对路径导入模块

如何根据相对路径导入Python模块?

例如,如果dirFoo包含Foo.pydirBar,和dirBar包含Bar.py,我怎么导入Bar.pyFoo.py

这是一个直观的表示:

dirFoo\
    Foo.py
    dirBar\
        Bar.py
Run Code Online (Sandbox Code Playgroud)

Foo希望包括Bar,但重组文件夹层次结构不是一种选择.

python relative-path python-import

749
推荐指数
16
解决办法
88万
查看次数

如何在Python中进行相对导入?

想象一下这个目录结构:

app/
   __init__.py
   sub1/
      __init__.py
      mod1.py
   sub2/
      __init__.py
      mod2.py
Run Code Online (Sandbox Code Playgroud)

我正在编码mod1,我需要从中导入一些东西mod2.我该怎么办?

我尝试了from ..sub2 import mod2但是我得到了"尝试非包装中的相对导入".

我google了一下,但发现只有" sys.path操纵"黑客.有没有干净的方式?


编辑:我__init__.py的所有人目前都是空的

EDIT2:我想这样做,因为SUB2包含了为子包(共享类sub1,subX等等).

Edit3:我正在寻找的行为与PEP 366中描述的相同(感谢John B)

python python-module python-import

508
推荐指数
11
解决办法
31万
查看次数

如何根据名称导入模块?

我正在编写一个Python应用程序,它将命令作为参数,例如:

$ python myapp.py command1
Run Code Online (Sandbox Code Playgroud)

我希望应用程序是可扩展的,即能够添加实现新命令的新模块,而无需更改主应用程序源.树看起来像:

myapp/
    __init__.py
    commands/
        __init__.py
        command1.py
        command2.py
    foo.py
    bar.py
Run Code Online (Sandbox Code Playgroud)

所以我希望应用程序在运行时找到可用的命令模块并执行适当的命令模块.

Python定义了一个__import__函数,它接受一个模块名称的字符串:

__import __(name,globals = None,locals = None,fromlist =(),level = 0)

该函数导入模块名称,可能使用给定的全局变量和局部变量来确定如何解释包上下文中的名称.fromlist给出了应该从name给出的模块导入的对象或子模块的名称.

来源:https://docs.python.org/3/library/functions.html# 进口

所以目前我有类似的东西:

command = sys.argv[1]
try:
    command_module = __import__("myapp.commands.%s" % command, fromlist=["myapp.commands"])
except ImportError:
    # Display error message

command_module.run()
Run Code Online (Sandbox Code Playgroud)

这很好用,我只是想知道是否可能有更惯用的方法来完成我们正在使用此代码.

请注意,我特别不想使用鸡蛋或扩展点.这不是一个开源项目,我不希望有"插件".重点是简化主应用程序代码,并在每次添加新命令模块时无需修改它.

python python-import

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

如何列出Python模块中的所有函数?

我在我的系统上安装了一个python模块,我希望能够看到它中有哪些函数/类/方法.

我想在每一个上调用doc函数.在ruby中,我可以执行类似ClassName.methods的操作,以获取该类上可用的所有方法的列表.python中有类似的东西吗?

例如.就像是:

from somemodule import foo
print foo.methods # or whatever is the correct method to call
Run Code Online (Sandbox Code Playgroud)

python reflection module inspect

376
推荐指数
13
解决办法
59万
查看次数

如何创建可变数量的变量?

如何在Python中完成变量变量?

这是一个精心设计的手动条目,例如:变量变量

我听说这是一个坏主意,但它是Python中的一个安全漏洞.真的吗?

python variable-variables

315
推荐指数
13
解决办法
12万
查看次数

使用Python中的设置文件的最佳做法是什么?

我有一个命令行脚本,我运行了很多参数.我现在已经到了一个我有太多参数的地方,我想也有一些字典形式的参数.

因此,为了简化操作,我希望使用设置文件来运行脚本.我真的不知道用什么库来解析文件.这样做的最佳做法是什么?我当然可以自己敲一些东西,但是如果有一些库,那我就是耳朵.

一些"要求":

  • 而不是使用pickle我希望它是一个可以轻松阅读和编辑的直接文本文件.
  • 我希望能够在其中添加类似字典的数据,即应该支持某种形式的嵌套.

一个简化的伪示例文件:

truck:
    color: blue
    brand: ford
city: new york
cabriolet:
    color: black
    engine:
        cylinders: 8
        placement: mid
    doors: 2
Run Code Online (Sandbox Code Playgroud)

python settings configuration parsing yaml

308
推荐指数
4
解决办法
24万
查看次数

永久添加目录到PYTHONPATH?

每当我使用时sys.path.append,都会添加新目录.但是,一旦我关闭python,列表将恢复到之前的(默认?)值.如何永久添加目录PYTHONPATH

python windows save sys pythonpath

293
推荐指数
14
解决办法
52万
查看次数

从另一个脚本调用脚本的最佳方法是什么?

我有一个名为test1.py的脚本,它不在模块中.它只有在脚本本身运行时才能执行的代码.没有函数,类,方法等.我有另一个作为服务运行的脚本.我想从作为服务运行的脚本中调用test1.py.

例如:

文件test1.py

print "I am a test"
print "see! I do nothing productive."
Run Code Online (Sandbox Code Playgroud)

文件service.py

# Lots of stuff here
test1.py # do whatever is in test1.py
Run Code Online (Sandbox Code Playgroud)

我知道一种方法是打开文件,读取内容,并基本上评估它.我假设有一个更好的方法来做到这一点.或者至少我希望如此.

python

277
推荐指数
9
解决办法
42万
查看次数

从字符串变量导入模块

我正在研究嵌套matplotlib(MPL)库的文档(个人),它与MPL自己提供的有趣的子模块包不同.我正在编写Python脚本,我希望将从未来的MPL版本中自动生成文档.
我选择了感兴趣的子模块/包,并希望列出我将生成列表并处理它的主要类pydoc

问题是我找不到一种方法来指示Python从字符串加载子模块.这是我尝试的例子:

import matplotlib.text as text
x = dir(text)
Run Code Online (Sandbox Code Playgroud)

.

i = __import__('matplotlib.text')
y = dir(i)
Run Code Online (Sandbox Code Playgroud)

.

j = __import__('matplotlib')
z = dir(j)
Run Code Online (Sandbox Code Playgroud)

以下是通过pprint对上述列表进行3种比较:

在此输入图像描述

我不明白在y对象中加载了什么- 它是基础matplotlib加上其他东西,但它缺少我想要的信息,而且它是matplotlib.text包中的主要类.这是截图(x列表)中的顶级蓝色部分

请不要建议Sphinx采用不同的方法.

python matplotlib

166
推荐指数
3
解决办法
12万
查看次数