小编Hel*_*hne的帖子

如何使用 python 的 distutils 安装脚本到 sbin?

通常在大多数 Unix 系统上,$PREFIX/bin和之间有区别$PREFIX/sbin。当安装一个软件时,管理员决定什么$PREFIX是,但作者决定哪些程序适合普通用户,哪些不适合。使用 Python可以定义distutils一组scripts并将它们安装到$PREFIX/bin. 那么如何将脚本安装到对应的sbin目录下呢?

请注意,在这种情况下,欢迎仅针对 Linux 的解决方案,因为相关软件的其他部分依赖于 iptables。

python installation distutils

5
推荐指数
1
解决办法
2015
查看次数

如何在Haskell中访问Graphics.Gloss事件类型?

我正在尝试使用Gloss库的play函数,它接受一个事件处理函数,其第一个参数是类型Event(根据Hackage文档).我正在使用GHC 7.6.3和Gloss 1.8.0.1开发Windows.

这是我正在尝试做的草图:

import Graphics.Gloss

type GameState = [Int]

handleInputEvent :: Event -> GameState -> GameState
handleInputEvent _ = id -- Just stubbed in for now
Run Code Online (Sandbox Code Playgroud)

编译器错误是:

Not in scope: type constructor or class `Event'
Run Code Online (Sandbox Code Playgroud)

如果我进入WinGHCI并导入Graphics.Gloss并询问它的类型签名play,它看起来像这样:

play ::
  Display
  -> Color
  -> Int
  -> world
  -> (world -> Picture)
  -> (gloss-1.8.0.1:Graphics.Gloss.Internals.Interface.Event.Event
      -> world -> world)
  -> (Float -> world -> world)
  -> IO ()
Run Code Online (Sandbox Code Playgroud)

我猜这与名称Event与其他模块发生冲突有关,因此不会以与Gloss中其他符号相同的方式导入.

我如何与Haskell谈论Gloss' Event

haskell gloss

5
推荐指数
1
解决办法
738
查看次数

如何将Python线程代码转换为多处理代码?

我需要将threading应用程序转换为应用multiprocessing程序有多种原因(GIL,内存泄漏).幸运的是,线程非常孤立,只能通过Queue.Queues进行通信.这个原语也可用,multiprocessing所以一切看起来都很好.在我进入这个雷区之前,我想就即将出现的问题得到一些建议:

  1. 如何确保我的对象可以通过Queue?我需要提供一些__setstate__吗?
  2. 我可以依靠put立即返回(比如threading Queues)吗?
  3. 一般提示/提示?
  4. Python文档之外还有什么值得阅读的东西吗?

python multithreading multiprocessing gil

4
推荐指数
1
解决办法
2033
查看次数

如何判断 POSIX shell 中是否存在某个函数?

这基本上与确定 bash 中是否存在函数相同,只是这次它不是针对 Bash,而是针对POSIX shell

如何判断给定名称的shell函数是否存在?

似乎没有一个典型的内置函数type是 POSIX 强制要求的,所以这个问题更加困难,甚至可能是不可能的。

shell posix function sh

3
推荐指数
1
解决办法
1254
查看次数

Python 在 futex 调用中挂起

我有一个在生产环境中运行的 Python 守护进程。它使用 7 到 120 个线程。最近,最小的实例(7 个线程)开始显示挂起,而所有其他实例从未显示此类问题。将 strace 附加到 python 进程显示所有线程都在调用 futex FUTEX_WAIT_PRIVATE,因此它们可能试图锁定某些内容。

你会如何调试这样的问题?

请注意,这是一个从闪存运行的生产系统,因此磁盘写入也受到限制。

python debugging multithreading deadlock futex

2
推荐指数
1
解决办法
8332
查看次数

特定于方言的sqlalchemy配置

当将sqlalchemy与多个方言一起使用时,仅添加方言特定的配置(例如sqlite的外键支持或postgres的server_side_cursors)会带来问题,因为所有其他方言均不了解该配置或事件。例如:

# applying postgres configuration to a sqlite3 database fails
>>> sqlalchemy.create_engine("sqlite3:///test.sqlite3", server_side_cursors=True)
...
TypeError: Invalid argument(s) 'server_side_cursors' sent to create_engine(), using configuration SQLiteDialect_pysqlite/NullPool/Engine.  Please check that the keyword arguments are appropriate for this combination of components.
Run Code Online (Sandbox Code Playgroud)

但是,sqlite不需要此配置,因为它会自动流式传输结果。同样,postgres不需要启用外键支持,因为这是默认设置。

如何以一种不会破坏其他方言的方式应用该方言特定的配置?是否有一些sqlalchemy促进了此分支?有比isinstance测试更好的东西吗?

sqlalchemy

2
推荐指数
1
解决办法
726
查看次数

带有Gloss lib的Haskell代码无法编译

我从C++切换到Haskell并使用Gloss来制作游戏.我在main.hs中写了这个有效的代码:

import Graphics.Gloss.Interface.Pure.Game

events (EventKey (Char 'a') Down _ _) _ = RectangleWire 10 10
events _ x = x

main = play (InWindow "GameEvent" (700, 100) (10, 10))
    white
    100
    (Circle 10.0)
    id
    events
    (\_ world -> world)
Run Code Online (Sandbox Code Playgroud)

然后命令ghc main.hs回答:

[1 of 1] Compiling Main             ( main.hs, main.o )

main.hs:3:43: Not in scope: data constructor `RectangleWire'
Run Code Online (Sandbox Code Playgroud)

即使我安装了最新版本,我的Gloss lib似乎也缺少一些功能.例如,这个代码,来自gloss-examples包的"Game Event",编译和运行完美(非常漂亮):

import Graphics.Gloss

-- | Display the last event received as text.
main
 = play (InWindow "GameEvent" (700, 100) …
Run Code Online (Sandbox Code Playgroud)

haskell compiler-errors gloss

1
推荐指数
1
解决办法
319
查看次数

为什么没有Python集的查找方法?

在Python,对象可以是尽管不是同一对象(等于==相对于is).考虑以下任意对象的序列obj1obj2.

assert obj1 == obj2
assert obj1 is not obj2
s = set((obj1,))
del obj1
Run Code Online (Sandbox Code Playgroud)

有以获得一般且有效的方法obj1sobj2(对于任意大的集s发生在包含一个对象,它等于被查找的)?(似乎依赖set.intersect单身人士set的结构并不可靠.)

如果没有,为什么?

显而易见的替代方法是使用dict每个键存储为其自身值的位置.目前尚不清楚与set基于预期的方法相比,处理废物的内存量是多少.

python set

0
推荐指数
1
解决办法
62
查看次数