通过http加载Python库

时间:2014-05-05 14:42:25

标签: python http cloud dropbox pythonpath

我有几个小的Python库,我写的东西,我发现自己一遍又一遍地想要。我认为大多数程序员都有类似的东西。我想从各种不同的机器中使用这些库,所以我开始在DropBox中保存这些东西。但是,我希望能够在我无法安装DropBox或其他云存储应用程序的机器上使用我的代码,即使是以便携式形式。我可以在每次更改文件时下载文件(DropBox可以为我公共文件夹中的每个文件提供一个URL),这只是一个中等的麻烦。但是 - 而且我承认这是一个远景 - 那里有一个解决方案,让我告诉Python通过http从我的DropBox加载一个库吗?

顺便说一下,我想将整个删除文件夹添加到我的sys.path中,但是getting a URL for a folder is complicated,所以在我开始使用单个文件之前我会尝试走路。

2 个答案:

答案 0 :(得分:0)

是的,这是可能的。我想你想要结合前两个问题:

因此,您的任务基本上分解为编写一些粘合代码:通过第一个项目符号下载URL,将其写入本地文件,然后使用第二个项目符号导入该文件。

这就是你如何做到的。

但是 - 请记住,动态下载和执行代码有许多潜在的安全隐患。你会通过安全连接这样做吗?还有谁能够操纵该URL?在运行中下载和执行代码时存在许多固有的安全问题。我会请你考虑以不同的方式解决你的解决方案,但我会给你你要求的答案。

作为一个简单的安全检查,您可以为您的文件建立一个已知良好的哈希值,然后拒绝导入除已知良好哈希值列表之外的任何文件。这使得更新模块变得很痛苦,但是给你一点额外的安全性。

答案 1 :(得分:0)

  1. 请勿将DropBox用作Revision control
  2. 选择像Git
  3. 这样的真实解决方案
  4. 设置对其中一台服务器上的Git存储库的访问
  5. 将存储库克隆到工作机器并结帐master
  6. 创建一个develop分支,您可以在其中进行每项更改
  7. 测试更改,当您考虑任何更改时,将其合并到master
  8. 在你的工作者机器上设置一个cron作业,它定期从存储库的master分支中拉出(并且可能会重新启动一些Python进程,因为再次导入同一个模块不会使Python解释器知道更改,因为导入的模块是缓存)
  9. 享受自动更新的工作人员:)
  10. 不要感到羞耻 - 即使是经验丰富的软件开发人员也会提出XY problem