2016-09-14 154 views
0

我已经创建了一个在我的笔记本电脑上使用Pycharm用Python编写的简单 - 中等复杂性脚本,我希望使用Crontab在我的Raspberry Pi上运行此脚本。我以前的所有编程经验都是在Windows中使用C++和C#,因此我通常只需构建项目并将其全部编译并链接到一个可执行文件中。“编译”Python在另一台机器上运行

对于Python来说,如何“编译”脚本以便可以在另一台PC上运行?我使用一些外部库(请求和ImgurClient),我必须使用Pycharm应用程序进行安装。我想我认为这些需要传递给RaspPi也是正确的?我的脚本有两个文件,所以我需要复制这两个文件?有没有办法将它们构建成单个文件以便轻松使用?

这是我写的第一个脚本,仅仅是从我对其他语言的知识和一些Google搜索中所写的。现在只是不知道如何继续,我有实际的脚本。

+1

无需编译,所有你需要的是Python在目标机器上兼容的版本。之后,它就像复制.py文件并运行它一样简单。 –

+0

这可能会帮助您http://sackoverflow.com/questions/11409416/moving-a-python-script-to-another-computer – jh44tx

+0

即使在Linux上,也可以将解释器,脚本和代码打包到单个独立的可执行文件中,但是**你真的不想**。这会让你的程序启动起来要慢得多,如果你只是按照传统的方式完成工作 - 也就是通过复制Python源文件(可能打包成Python蛋或类似文件),安装解释器和任何必要的库依赖关系,然后使用该解释器运行该文件。 [在一些较大的机器上,启动开销可能是可以忍受的,但是在一个Pi上,它会变得非常慢很多。 –

回答

1

如果您已经在树莓派安装Python,然后从外壳,你只需要运行:

# This installs pip (Python installer) as well as the requests library 
sudo apt-get install python-pip 

一旦被安装,运行:

# To install the ImgurClient 
pip install imgurpython 

那么你可以只通过键入运行你的shell脚本:

python your_script_name.py 

如果您还没有安装的Python,只需运行以下命令别人之前进行安装:

sudo apt-get install python 
+0

已经打包了'requests',还是应该在这里添加? –

+0

'requests'被安装为'pip'安装的一部分 – ode2k

+0

我遇到了'pip install imgurpython'命令的问题。我得到一个“ImportError:cannoy导入名称IncompleteRead”错误。你知道这可能是什么原因吗?谢谢 –

0

Python不需要编译,因为它是一种解释性语言。只要你没有进行系统调用,你就可以在另一台机器上运行它。如果你正在尝试在Linux机器上使用windows命令等,系统调用只会成为一个问题。

只需将这两个文件复制到pi中,然后像正常一样运行即可。或从终端

python program.py 
+0

我不需要安装我正在使用的外部库吗?我做'导入请求'等,所以树莓派需要知道如何找到这个。 –

+0

@TomDippé,是的,你需要安装它们,但你正在运行Debian;它有他们(很好,绝对'请求')打包。 –

+0

@TomDippé如果你不确定包含的软件包,你可以随时查看你的python路径。但查尔斯是正确的,因为大部分图书馆都会在那里。唯一不可能的是你以后安装的额外库,即不是像numpy或scipy这样的默认python库。然后使用pip来安装,apt或类似anaconda的东西。 –

0

使用PyInstaller。在终端,创建一个独立的EXE只是用这样的命令:

pyinstaller -F myscript.py 
+0

不适用于Raspberry Pi - 那些不运行.exe文件,而且您真的不希望PyInstaller的启动时间开销无论如何。 –

+0

RaspPi正在运行Raspbian(基于Debian),因此无法作为exe运行 –

+0

@TomDippé,... PyInstaller实际上并不仅仅是Windows - 它也可以创建Linux可执行文件 - 但这些Linux可执行文件将是在一个Pi上运行的痛苦缓慢(以及开始运行)。 –

0

你可以“编译” Python文件到.pyc,但你仍然需要在RaspPi Python解释器来运行它们。

在没有Python的PC上,您可以使用py2exe创建独立的可执行文件,但可执行文件必须在Windows上运行。

你必须在你的树莓派安装Python解释器,或者创建拥有py2exe可执行靶向树莓派(如果该平台上存在py2exe),这将是另一个树莓派:)

另一种选择将会是Cython,但是外部库和你想要使用的库一样复杂,这将是一条非常困难的路线。

Python on Raspberry Pi

Creating python exes on Linux

0

至于其他的答案说,你可以运行在PI代码,因为Python代码解释并没有遵守。

这就是说,你需要预先安装任何Python包,比如ImgurClient。如果你在PC上使用PyCharm,你可能需要在Pi上使用pip

0

我不知道您是否可以在其他环境中运行python脚本,特别是如果脚本使用通常使用pip安装的外部库(.whl)。

一个很好的选择,以在一个干净的环境中运行的脚本是使用的virtualenv:

https://virtualenv.pypa.io/en/stable/

“它创造的是有自己的安装目录的环境下,不共享与其他的virtualenv库环境(并且可选地不访问全局安装的库)“

然后只安装必要的库以运行脚本。如果你导出这个新的环境,你可能会运行你的脚本没有任何问题。

相关问题