我正在检查编译python脚本后的性能提高了多少。在研究了这个问题之后,我认为我编写的脚本不会真正提高性能,因为我发现一旦加载了脚本,执行时间就不会增加。我仍然想知道为什么编译后无法运行,因为这是我第一次尝试。这是我的剧本
#!/bin/python3
from datetime import datetime
start = datetime.now()
import psutil
BYTES_PER_GB = 1024*1024*1024
# Memory
m = psutil.virtual_memory()
#total = m.total/BYTES_PER_GB
#available = m.available/BYTES_PER_GB
#used = m.used/BYTES_PER_GB
m_free= m.free/BYTES_PER_GB
m_percent = m.percent
# Swap
s = psutil.swap_memory()
s_free = s.free/BYTES_PER_GB
s_percent = s.percent
print(' %.1fG (%.1f%%) %.1fG (%.1f%%)' % (m_free, m_percent, s_free, s_percent))
print(' %.1fG (%.1f%%) %.1fG (%.1f%%)' % (m_free, m_percent, s_free, s_percent))
print(datetime.now() - start)
我试着用这行代码编译
python3 -m py_compile memory
在我的打印语句中,我有一些来自字体awesome的特殊字符。不确定这是否会导致一个问题,但如果它没有正确地显示在我的职位,那就是什么。你知道吗
尝试运行编译文件时的输出是
./memorycpython-35.pyc: line 1: $'\026\r\r': command not found
./memorycpython-35.pyc: line 2: �k�W��@s�ddlmZej�ZddlZdZej�Zejeej: command not found
./memorycpython-35.pyc: line 3: syntax error near unexpected token `)'
./memorycpython-35.pyc: line 3: `ej
�Z
e
e je
j Ze�eej�e�dS)�)datetimeNiii@)rZnow�startZpsutilZ
BYTES_PER_GBZvirtual_memory�mZfreeZm_freeZpercentZ m_percentZ
swap_memory�sZs_freeZ s_percent�print�rr�memory<module>s
'
^[[?62;c^[[?62;c
编辑
为了缩小问题范围,我写了以下脚本
#!/bin/python3
print("Hello World!")
这是输出
./testcpython-35.pyc: line 1: $'\026\r\r': command not found
./testcpython-35.pyc: line 2: syntax error near unexpected token `)'
./testcpython-35.pyc: line 2: `�r�W%�@sed�dS)z
Hello World!N)�print�rr�./test<module>s'
编译使用
python3 -m py_compile ./test
这将在__pycache__/
中创建一个名为testcpython-35.pyc
的文件,然后我执行chmod +x testcpython-35.pyc
和./testcpython-35.pyc
看来我的问题是
./testcpython-35.pyc
部分。当我运行python3 testcpython-35.pyc
,独立于我是否运行chmod +x ./testcpython-35.pyc
时,输出是拼凑的。只要我首先指定运行编译程序的程序,python3
,它就会按预期输出Hello World!
。你知道吗相关问题 更多 >
编程相关推荐