2016-11-17 55 views
0

我想知道什么是从网络位置的缺点,以加载Python模块加载Python模块利弊?利弊/来自网络位置

我已经开发了几十Python工具,现在我想在整个团队分享他们和每台计算机都有Python27本地安装。但是他们没有我的工具使用的所有必要模块。所有这些可能共有两个额外的模块,我的工具需要导入。我决定把这些模块放在网络上。然后在我的工具,我只有:

sys.path.append('Z:\\pipeline\\site-packages') 
import Shotgun 

这是一个可怕的想法?我发现它非常容易管理,宁愿这样做,然后试图管理在用户计算机上安装各种软件包以及什么。

我假设它不会是征税加载从几十通过网络艺术家的模块,因为一个工具加载模块不再需要与网络进行通信,对不对?

回答

1

嗯,是的。

代码绑到一个特定的位置,是一个相当糟糕的主意,这里有几个原因。

  • 如果没有网络连接,您将无法导入
  • 如果网络映射莫名其妙的变化,如果你有更新或修复模块,您必须更新代码
  • 在网络上,它的所有的进口商会立即受到影响

那些看起来像此刻的小问题给你,但: 您将无法导入,当你的笔记本电脑与网络隔离。您必须更新代码修订版(!)才能支持其他位置。如果网络模块中的更新需要对其导入程序进行本地更新,您将会破坏应用程序。

,永不要配合你的代码,以目前的随机环境。

1

多少设备/用户在你的团队有哪些?该网络位置的结构是什么?您在那里的文件(模块)的大小是多少?所有用户是否有可能尝试在同一时间加载模块?

基本上如果你的团队很小,你不应该真的担心它。不是最好的解决方案(主要是因为您可以使用pip installeasy_install轻松安装这些模块,但是如果您的团队变得更大(或者如果您使用集群并尝试在1000台机器上同时运行相同的代码) - 您可能会遇到问题。

如果存储不是为多台机器上访问(缓存/分发/ RAID) - 你可能会遇到麻烦,如果你会得到很大的

你可以阅读更多关于distributed file systems这给一个解决方案这种情况。