为什么我的python脚本在编译后会中断?

2024-09-29 22:24:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在检查编译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


Tags: 脚本freedatetimebyteslinepython3psutilpyc
1条回答
网友
1楼 · 发布于 2024-09-29 22:24:11

看来我的问题是./testcpython-35.pyc部分。当我运行python3 testcpython-35.pyc,独立于我是否运行chmod +x ./testcpython-35.pyc时,输出是拼凑的。只要我首先指定运行编译程序的程序,python3,它就会按预期输出Hello World!。你知道吗

相关问题 更多 >

    热门问题