【问题标题】:Is there a way to use C in a Python program without multiple files?有没有办法在没有多个文件的 Python 程序中使用 C?
【发布时间】:2021-03-29 17:30:38
【问题描述】:

我正在参加一个需要提交单个 python 文件的锦标赛。该问题需要在很短的时间内进行大量计算,任何性能提升都会非常有益。

我想知道的是,我可以以某种方式使用 C 吗?我知道 Cython 和 C 扩展,但它们需要多个文件,这意味着它们无法使用。有没有办法在没有其他文件的情况下从 python 内部执行编译的 C?

【问题讨论】:

  • 您可能要小心这样做,您可能会给自己带来很多问题。对于本次比赛,您甚至知道它将运行的架构吗?我希望他们会期待纯 Python。
  • 这能回答你的问题吗? Can we use C code in Python?
  • 我看到了一种方法,但这会很耗时,你确定要走这条路吗? @WilfredAlmeida 它不是重复的,他想将它放在一个文件中。
  • @RunnersNum45 - 没有其他文件 - 这意味着你不能使用任何import,对吧?
  • 您可以导入库吗? @RunnersNum45

标签: python c


【解决方案1】:

您可以通过两种方式实现这一点,首先制作您自己的包,为您的 C 代码提供包装器,然后使用 PyPi 发布它:

  • 你先写一个Python interface in C,我猜你已经知道怎么做了。

  • 你可以按照这个tutorial发布你的包,然后用pip install your-package-name调用你的包

请记住,这个过程相当漫长,如果您正在参加比赛,我不确定这是否是最好的解决方案,但我想如果您提出这个问题,您已经做了所有可以做的事情做优化算法部分。您还可以使用现有的高性能库之一(numpy、pandas)。如果您甚至不允许使用 pip,那么就无法在单个文件中执行此操作。

注意:我假设您可以通过终端安装软件包

【讨论】:

  • 这可能是我最好的解决方案。我会尝试一个测试,如果它有效,我会将其标记为答案。
  • 祝你好运,如果它有效,请告诉我!也有兴趣看看源代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多