Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为不同的平台管理一个Python项目?_Python_Selenium_Project Management - Fatal编程技术网

为不同的平台管理一个Python项目?

为不同的平台管理一个Python项目?,python,selenium,project-management,Python,Selenium,Project Management,我有一个python项目,我希望它同时运行MacOSX和Raspbian(Raspberry pi) 在这种情况下,我想知道如何为这两个平台管理我的项目(整个脚本) 我知道大多数代码与平台无关,但有些代码(如selenium)与平台相关。为什么? 原因是这样的: 我的程序正在抓取某个网页并无头收集数据 我只使用ssh的树莓,所以只有命令行界面可用 我在Max OSX上使用PhantomJS。但PhantomJS在Raspberry pi中安装起来既困难又复杂 因此,我必须对这两种情况使用不同的w

我有一个python项目,我希望它同时运行MacOSX和Raspbian(Raspberry pi)

在这种情况下,我想知道如何为这两个平台管理我的项目(整个脚本)

我知道大多数代码与平台无关,但有些代码(如selenium)与平台相关。为什么?

原因是这样的:

我的程序正在抓取某个网页并无头收集数据

我只使用ssh的树莓,所以只有命令行界面可用

我在Max OSX上使用PhantomJS。但PhantomJS在Raspberry pi中安装起来既困难又复杂

因此,我必须对这两种情况使用不同的
webdriver

在MacOSX中

browser = webdriver.PhantomJS()
在拉斯宾

from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 600))
display.start()
self.browser = webdriver.Firefox()
但是管理两个独立的python项目(一个用于MacOSX,另一个用于Raspbian)有点不合理

如果我插入下面这样的代码来处理它

import platform

if platform.system() == 'Linux':
    from pyvirtualdisplay import Display
    display = Display(visible=0, size=(800, 600))
    display.start()
    self.browser = webdriver.Firefox()
elif platform.system() =='Darwin':      # Mac OSX
    browser = webdriver.PhantomJS()
每次代码被更改时,我都必须将整个项目文件传输到我的Raspberry pi,这非常令人恼火


我怎样才能有效地处理它

您可以将代码分成几个文件: 1.粗锉

def raspberry_run():    
    from pyvirtualdisplay import Display
    display = Display(visible=0, size=(800, 600))
    display.start()
    self.browser = webdriver.Firefox()
  • 麦迪

    def mac_run():

  • main.py

  • 导入平台

    从mac导入*

    从锉刀导入*

    如果platform.system()=“Linux”:

    raspberry_run()
    
    elif platform.system()=“达尔文”:

    mac_run()
    

    每次更改mac.py或raps.py时,都不需要更改main.py。

    您可以将代码分为几个文件: 1.粗锉

    def raspberry_run():    
        from pyvirtualdisplay import Display
        display = Display(visible=0, size=(800, 600))
        display.start()
        self.browser = webdriver.Firefox()
    
  • 麦迪

    def mac_run():

  • main.py

  • 导入平台

    从mac导入*

    从锉刀导入*

    如果platform.system()=“Linux”:

    raspberry_run()
    
    elif platform.system()=“达尔文”:

    mac_run()
    

    每次更改mac.py或raps.py时,都不需要更改main.py。

    我每天都会在多个平台上进行开发,这样的基于云的源代码控制工具是无法替代的

    使用简单的推拉命令,您就可以在一个地方访问您的文件,而且具有外部备份副本的安全性。更不用说你有完整的复习历史了


    在那里只管理您的源代码(以及类似的软件包需求);您可以自由地以任何需要的方式自定义您的环境,例如安装特定于平台的库。

    我每天都在多个平台上进行开发,这样的基于云的源代码控制工具是无法替代的

    使用简单的推拉命令,您就可以在一个地方访问您的文件,而且具有外部备份副本的安全性。更不用说你有完整的复习历史了

    在那里只管理您的源代码(以及类似的软件包需求);您可以自由地以任何需要的方式自定义环境,例如安装特定于平台的库