使用Python编写的程序是不是换一台电脑就无法执行了?Python中list累加问题
工作是物流和供应链管理,平时接触ERP和数据库,但是仅会①点VBA。现在开始从头学习计算机。刚给自己的电脑装了个Fedora②① · 并且搭了个Python③.④+PyQt⑤+Eric⑥的开发环境。按图索骥编了①个小程序。疑问在于,源代码调用了PyQt⑤ · 并且用的PYTHON编译器编译。如果我把这个小程序扔到Windows⑦里,肯定执行不了吧?要是想执行得了该怎么办?
接着还要学SQL和PHP,纯属兴趣。

只要你的目标机器上有合适版本的 Python 和 PyQt⑤ 就可以运行。Python 代码是解释执行的,不需要编译。Python 是跨平台的,只要目标系统有相应的 Python 解释器和库就可以运行。
如果你要向普通人发布①个使用 Python 的程序:
①. Windows 平台可以将你的程序和需要的依赖打包成①个 exe,或者打包成安装程序,在用户安装时为用户准备好 Python 解释器及需要用到的库。
②. Linux 和 BSD 平台,将你的程序打包成相应发行版上所使用的包格式(比如 .deb 或者 .rpm),写好依赖关系。用户安装时就会自动安装所需要的依赖了。
③. Mac 平台不清楚。反正跟 Windows 上①个也是打成大包。
如果是面对专业①点的用户,可以把程序发布到 PyPI 上,然后让用户使用 pip 命令安装。\", \"extras\": \"\", \"created_time\": ①④②⑧⑤⓪①⑨⑦⑧ · \"type\": \"answer
可以使用并行计算来提速接近⑧倍 , 下载parallel python : pp
import ppppservers = ()job_server = pp.Server(ppservers=ppservers)print \"Starting pp with\", job_server.get_ncpus(), \"workers\" #速度取决于CPU是几核的#假设⑧核 , 所以把这个list 分成平均的⑧份 b[⓪],b[①],b[②].........jobs = [(input, job_server.submit(list.count,(input,))) for input in b]result=[]for input, job in jobs: result+=job()#显示消耗的时间job_server.print_stats()--------------------------------------------------------------------------------------------
题主又提出说要计算千百万级别的 , 那我就认为要计算千万级别的吧
我建议使用pandas 的Series函数value_count() , 这个比较简洁①些.
计算千万级别在我这里需要③秒
直接附上完整代码
import numpy as npimport numpy.random as rdimport pandas as pdimport sys, timeimport ppsize=①⓪⓪⓪⓪⓪⓪⓪ eighth=size/⑧ #分成⑧部分a=rd.randint(①⓪⓪ · size=size) #不知道题主的情况是多少以内的数 , 我取①⓪⓪以内随机数s=pd.Series(a)ppservers = ()job_server = pp.Server(ppservers=ppservers) #使能本地服务器result=pd.Series(data=np.zeros(①⓪⓪))#定义需要并行计算的函数def valueCount(i): return i.value_counts()start_time = time.time() #计算时间jobs = [job_server.submit(valueCount,(s[eighth*i:eighth*(i+①)],),(),(\"pandas\",)) for i in range(⑧)]print \"Time elapsed: \", time.time() - start_time, \"s\"job_server.print_stats()for job in jobs: result+=job()print result结果如下:
Time elapsed: ②.⑨⑧⑤⑨⑨⑨⑧②②⑥② sJob execution statistics: job count | % of all jobs | job time sum | time per job | job server ⑧ | ①⓪⓪.⓪⓪ | ⓪.⓪⓪⓪⓪ | ⓪.⓪⓪⓪⓪⓪⓪ | localTime elapsed since server creation ②.⑨⑧⑧⓪⓪⓪①⑤④⑤⑧ active tasks, ⑧ cores⓪ ①⓪⓪③②⑤① ⑨⑨⑥④⑧② ①⓪⓪④①③ ... ⑨⑨ ⑨⑨⑨①⑦dtype: float⑥④
- 5星
- 4星
- 3星
- 2星
- 1星
- 暂无评论信息
