【问题标题】:Importing module from network从网络导入模块
【发布时间】:2011-01-17 06:37:26
【问题描述】:

有没有办法让 python 从网络中读取模块?

我们有很多机器,每次更改模块时手动更新每台机器会很费力,所以我希望 python 从网络上的某个位置获取模块。

有什么想法吗?

【问题讨论】:

标签: python networking module import centralized


【解决方案1】:

将您的网络位置安装到您的文件系统中,并将该路径添加到您的 PYTHONPATH。这样,本地机器上的 Python 将能够看到远程位置中存在的模块。 您不能直接从模块远程导入,例如在 html 中指定 js 文件。

【讨论】:

  • 你是什么意思'就像在html中指定一个js文件'..就像一个
  • @ryanmonk 在 HTML 中您可以导入模块,即使它们不存在于项目文件夹中。你从互联网上导入它如下。 但python不允许。
【解决方案2】:

我相信您正在寻找一种分布式计算框架,您可以在其中将代码和数据部署到一个节点,并将它们作为任务分布在一组客户端/服务器/对等方之间。检查PyroexecnetParallel PythonJugRPyC

【讨论】:

    【解决方案3】:

    虽然想通过网络导入模块有点病态,但它实际上是可能的。查看the source for zipimport 了解如何完成。

    【讨论】:

    • 您能否简单地说一下为什么这不是一个好主意?这是责任问题还是与核心语言更相关的问题?
    • 安全和速度原因。如果您的网络受到威胁(或者如果您正在做一些更疯狂的事情,例如通过 Internet 导入),那么您就有丢失服务器的风险。如果您每秒多次运行该脚本,那么您将通过网络获得更多流量。
    【解决方案4】:

    我是怎么做到的:

    控制面板\所有控制面板项\系统>>高级>>环境变量>>系统变量>>新建>>名称= PYTHONPATH,值= \server\scriptFolder

    感谢大家的帮助:)

    【讨论】:

      【解决方案5】:
      sys.path.append(r'\\network\path')
      import module
      

      【讨论】:

        【解决方案6】:

        值得注意的是,存在一个用于导入通过 HTTP/S 可用的包/模块的模块,它是 httpimport。这适用于 Python2 和 Python3。

        因此,从公认的答案开始,事实证明,有一些方法可以以编程方式“像 javascript”一样导入远程模块,如下所示:

        >>> with httpimport.remote_repo(['package1'], 'http://my-codes.example.com/python_packages'):
        ...     import package1
        ...
        >>> # -- 'package1' code is available here --
        

        【讨论】:

          猜你喜欢
          • 2017-04-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-08
          • 2015-12-11
          • 1970-01-01
          • 2015-01-06
          • 2010-10-17
          相关资源
          最近更新 更多