相关疑难解决方法(0)

如何卸载(重新加载)Python模块?

我有一个长期运行的Python服务器,并希望能够在不重新启动服务器的情况下升级服务.这样做的最佳方法是什么?

if foo.py has changed:
    unimport foo  <-- How do I do this?
    import foo
    myfoo = foo.Foo()
Run Code Online (Sandbox Code Playgroud)

python module reload python-import

759
推荐指数
15
解决办法
59万
查看次数

在交互时重新导入python中的模块

我知道它可以做到,但我永远不会记得如何.

如何在python中重新导入模块?方案如下:我以交互方式导入模块并修改它,但后来我遇到了错误.我修复.py文件中的错误然后我想重新导入修复模块而不退出python.我该怎么做 ?

python

330
推荐指数
5
解决办法
14万
查看次数

检测python模块是否更改然后重新加载

所以我正在开发一个包含许多模块的相当大的python项目."main"(可运行)模块是一个守护进程(实际上是一个Thrift守护进程),它调用其他模块来实现其实际功能.启动守护程序需要很长时间,因为某些模块具有相当冗长且涉及的初始化过程.

因此,当我启动守护进程时,我等待......让我们说......加载所有内容需要2分钟,这在宏伟计划中并不算太糟糕.然而,对于开发而言,它变成了一个主要的痛苦,因为我需要每次都重新启动守护程序,这已经浪费了我很多时间.

大多数模块只需几秒钟即可加载.理想情况下,我想要做的是检测特定模块中的任何文件何时发生更改,然后重新加载该特定模块.我已经想出了如何重新加载模块,但此时我无法弄清楚如何观察特定模块的变化.请记住,.py在这种情况下,模块不是单个文件,而是具有__init__.py5-10个.py文件的目录,因此我需要检测其中任何文件何时发生更改.

这是项目布局(如果它有任何区别)

project
| -- daemonize.py
| -- main.py
| -- moduleA
|    | -- __init__.py
|    | -- happy_panda.py
|    ` -- sad_panda.py
| -- moduleB
|    | -- __init__.py
|    | -- takes_forever_to_load.py
|    ` -- seriously_get_some_coffee.py
| -- moduleC
|    | -- __init__.py
|    | -- frequently_changes.py
|    | -- reasons_i_hate_my_job.txt
|    ` -- home_address_of_moduleB_developer.txt
` -- service.py <-- uses modules A, B, and C …
Run Code Online (Sandbox Code Playgroud)

python import runtime

26
推荐指数
1
解决办法
1万
查看次数

Python重装文件

我有一个计算一些东西的脚本.它使用来自单独文件'inputs.py'的输入.

在'inputs.py'中只有几个变量:

A = 2.3
B = 4.5
C = 3.0
Run Code Online (Sandbox Code Playgroud)

在主文件中我导入它们

from inputs import *
Run Code Online (Sandbox Code Playgroud)

如果我现在在'inputs.py'中更改某些内容并再次执行该脚本,它仍然使用旧值而不是新值.我怎样才能重新加载文件?

reload(inputs)
Run Code Online (Sandbox Code Playgroud)

不起作用.

提前谢谢了!

python file reload

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

标签 统计

python ×4

reload ×2

file ×1

import ×1

module ×1

python-import ×1

runtime ×1