运行 一个 python 脚本和更改 git 分支
Running a python script and changing git branch
我正在努力寻找更好地利用编程时间的方法。
我有一个 python 脚本可以完成一些繁重的工作(可能需要几个小时)。现在,它所做的大部分工作都与网络相关,所以我有很多 cpu 资源可以使用。
如果脚本是 C 二进制可执行文件,可以 git 检出到不同的分支并做额外的工作,我什至可以修改磁盘中的二进制文件,因为它已被复制到 ram,所以直到它完成 运行 我不会影响程序输出。
但是 python 脚本是翻译的,不是编译的。如果我开始篡改源文件会发生什么,我是否可以破坏程序输出,或者文本文件和相关导入是否复制到 RAM,允许我篡改源而不会有改变 [=25= 的行为的风险] 程序?
当一个 python 程序是 运行 它是 compiled
(有点,更像是翻译)到一个 .pyc 文件然后 运行 由 python 解释器。当您更改文件时,如果它已经 运行ning,则不应影响代码。
这是一个相关的 Whosebug 答案。 What will happen if I modify a Python script while it's running?
为什么不在另一个工作目录中进行修改?是否有很多辅助数据或其他东西使设置工作目录变得困难? IE。如果您的工作目录是 A
、git clone A B
,然后在 B
中工作。完成后,您可以将更改从 B
拉回到 A
:
git remote add B ../B
git pull B master
一般来说,如果您有一个 Python 文件并将其 运行 作为脚本,就可以了。当你 运行 文件时,它被编译成字节码然后被执行。此时您可以更改原始脚本,不会出现任何问题。
但是,我们可以故意通过编写一些可怕但合法的代码来打破它:
horrible.py
:
from time import sleep
sleep(10)
import silly
silly.thing()
silly.py
:
def thing():
print("Wow!")
您可以 运行 horrible.py
并且在 运行ning 期间您可以编辑磁盘上的 silly.py
以使其执行其他操作。当 silly.py
最终 import
ed 时,将加载更新版本。
一种解决方法是将所有导入放在文件的顶部,无论如何您都可能这样做。
我正在努力寻找更好地利用编程时间的方法。
我有一个 python 脚本可以完成一些繁重的工作(可能需要几个小时)。现在,它所做的大部分工作都与网络相关,所以我有很多 cpu 资源可以使用。
如果脚本是 C 二进制可执行文件,可以 git 检出到不同的分支并做额外的工作,我什至可以修改磁盘中的二进制文件,因为它已被复制到 ram,所以直到它完成 运行 我不会影响程序输出。
但是 python 脚本是翻译的,不是编译的。如果我开始篡改源文件会发生什么,我是否可以破坏程序输出,或者文本文件和相关导入是否复制到 RAM,允许我篡改源而不会有改变 [=25= 的行为的风险] 程序?
当一个 python 程序是 运行 它是 compiled
(有点,更像是翻译)到一个 .pyc 文件然后 运行 由 python 解释器。当您更改文件时,如果它已经 运行ning,则不应影响代码。
这是一个相关的 Whosebug 答案。 What will happen if I modify a Python script while it's running?
为什么不在另一个工作目录中进行修改?是否有很多辅助数据或其他东西使设置工作目录变得困难? IE。如果您的工作目录是 A
、git clone A B
,然后在 B
中工作。完成后,您可以将更改从 B
拉回到 A
:
git remote add B ../B
git pull B master
一般来说,如果您有一个 Python 文件并将其 运行 作为脚本,就可以了。当你 运行 文件时,它被编译成字节码然后被执行。此时您可以更改原始脚本,不会出现任何问题。
但是,我们可以故意通过编写一些可怕但合法的代码来打破它:
horrible.py
:
from time import sleep
sleep(10)
import silly
silly.thing()
silly.py
:
def thing():
print("Wow!")
您可以 运行 horrible.py
并且在 运行ning 期间您可以编辑磁盘上的 silly.py
以使其执行其他操作。当 silly.py
最终 import
ed 时,将加载更新版本。
一种解决方法是将所有导入放在文件的顶部,无论如何您都可能这样做。