我在python中有一个函数,用于循环进行一些计算是3个。这非常慢,所以我寻找了加快我的Python代码速度的解决方案,然后我看到Cython是一种加速Python代码的方法。我在笔记本中编写了Cython函数,效果很好,因此我想将其包含到现有项目中,但是现在我无法将此函数导入其他要调用的文件中。我尝试这样做method:
import pyximport
pyximport.install()
from my module import function_a, function_b
但是它仍然给我以下错误:ModuleNotFoundError:没有名为“ my_module”的模块
我正在运行Python 3.8.3和Cython 0.29.21
我的文件夹结构如下
答案 0 :(得分:0)
PS C:\Users\adeee\Desktop\test> tree /F
C:.
ip.pyx
test.py
因此您可以看到我有我运行的主test.py
文件。我还有一个ip.pyx
文件,可从其中导入check_ip
函数。
也许您的代码中有某种错字。我可以看到你有
from my module import function_a, function_b
但是您应该拥有:
from my_module import function_a, function_b
包含_
符号很重要。
import pyximport
pyximport.install()
import ip
if __name__ == '__main__':
ip.check_ip('192.168.1.1')
import ipaddress
def check_ip(user_ip):
try:
ip = ipaddress.ip_address(user_ip)
print(f'{ip} is correct. Version: IPv{ip.version}')
except ValueError:
print('Adress is invalid')
Generating code
Finished generating code
192.168.1.1 is correct. Version: IPv4
在导入任何pyximport
模块之前,您必须导入pyximport.install()
模块并运行*.pyx
方法。运行完这两个命令后,您应该拥有一个导入的模块,就像常规的*.py
文件一样。