【问题标题】:Single module from scipy into python project从 scipy 到 python 项目的单个模块
【发布时间】:2017-06-01 23:02:38
【问题描述】:

我的情况:

需要将解决方案.zip 文件上传到执行我的solution.py 文件的某个服务器。但是,我需要使用 package spatial 中的 scipy 方法,该方法在服务器上不可用。

简单附加整个scipy lib ? - 不,我不能因为它不符合.zip 文件大小规定,但是,如果我只从 scipy 上传空间包(不使用任何其他),一切都会适合(大小)。

有可能吗?

因为当简单地将空间包粘贴到我的项目文件夹(来自 github 存储库的文件)时,它不起作用,因为主要是在导入说明中出现 'Couldn't find foofile' 之类的错误。

谢谢,感谢您的帮助

【问题讨论】:

  • 这可能是个坏主意,因为您需要获得所有依赖项。也不清楚,你需要空间的哪一部分,也许一个简单的功能复制粘贴就足够了。除此之外,您的任务中是否允许这样做?
  • scipy.spatial 的大部分内容是用 C++、C 和 Cython 编写的,因此您绝对不能通过简单地从 github 存储库中复制文件来安装它。

标签: python module server scipy package


【解决方案1】:

要查看这不起作用的一个原因,您可以从 (i)python 命令行进行操作

from scipy import spatial
import inspect
inspect.getsourcelines(spatial)

在评论文本下,您可以看到几个导入。如果你也看看其中的第一个,

inspect.getsourcelines(spatial.kdtree)

还有一条导入线

import scipy.sparse

这只是我发现的第一个示例,肯定有更多的依赖项,如果您无权访问它们,scipy.spatial 将无法正常工作。另请注意,numpy 是导入的,如果您的服务器没有 scipy,它可能也没有 numpy。

我的建议是复制/重写您需要的 scipy 代码(如果允许的话),在没有 scipy 的情况下编写您的代码,或者要求服务器管理员允许更大的文件或安装 scipy。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-28
    • 2014-09-14
    • 1970-01-01
    • 2015-04-21
    相关资源
    最近更新 更多