我想让一个cron作业使用一个名为my_env的现有anaconda python环境执行python脚本.我唯一能想到的就是让cron作业运行一个脚本调用my_script.bash,然后激活env,然后运行python脚本.
#!/bin/bash
source activate my_env
python ~/my_project/main.py
Run Code Online (Sandbox Code Playgroud)
尝试从命令行执行此脚本不起作用:
$ sh scripts/my_script.bash
scripts/my_script.bash: 9: scripts/my_script.bash: source: not found
Run Code Online (Sandbox Code Playgroud)
我需要做些什么来确保激活适当的环境.可以向我解释,就像我5岁.
当我尝试将任务发送给代理(RabbitMQ)时,它挂起。
# python shell
promise = foo.s(first_arg="2").apply_async()
# blocking indefinitely. I expected a promise object.
Run Code Online (Sandbox Code Playgroud)
如果我同步运行该任务,它将按预期工作。
# python shell
promise = foo.s(first_arg="2").apply()
>>> hello argument 2
Run Code Online (Sandbox Code Playgroud)
如果我.apply_async()用 ctrl+c 中断,我会得到一些线索的回溯:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/kombu/utils/functional.py", line 32, in __call__
return self.__value__
AttributeError: 'ChannelPromise' object has no attribute '__value__'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/amqp/transport.py", line 173, in _connect
host, port, family, socket.SOCK_STREAM, SOL_TCP)
File "/usr/local/lib/python3.7/socket.py", line 752, …Run Code Online (Sandbox Code Playgroud) 我想读取一个文本文件并在Windows consol中打印内容。但是特殊字符被打乱了。
config.txt
[
{
"beer": "øl",
"eel": "ål",
"egg": "æg"
}
]
Run Code Online (Sandbox Code Playgroud)
代码
text = open("config.txt")
print(text.read())
Run Code Online (Sandbox Code Playgroud)
Windows控制台输出python code.py:
[
{
"beer": "øl",
"eel": "Ã¥l",
"egg": "æg"
}
]
Run Code Online (Sandbox Code Playgroud) 我经常看到这个问题,但我对答案并不满意。我知道像 Django 和 Flask/Werkzeug 这样的服务器程序有 startserver/run 方法,可以让进程保持活动状态,直到收到停止信号。
我想实现类似的东西,但我不知道如何去做。我认为永恒循环是一种糟糕的方法,因为它浪费了处理时间。我宁愿不使用第三方库。
我的程序必须保持活动状态以等待回调、与服务器通信、监视其内部状态等。
伪代码:
import ...
class Main():
def __init__():
self.sensors = sensors.register()
self.database = remote.connect()
self.running = True
def start():
""" this is what I assume is bad """
while self.running:
pass
def stop():
self.running = False
self.cleanup()
def cleanup():
self.database.disconnect()
self.sensors.unregister()
Run Code Online (Sandbox Code Playgroud)