日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python好多模块和c相识_Python-Cext名称空间与常规Python子模块混合?

發布時間:2025/3/20 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python好多模块和c相识_Python-Cext名称空间与常规Python子模块混合? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這個問題有點類似于:

只是稍微扭動一下。這里我并不是要混合兩個C-ext,而是一個C-ext和一個常規的python子模塊。在

有沒有辦法讓C擴展在符號之間共享模塊命名空間“模塊“子模塊中的那些呢?在

我的模塊結構如下:facs/

facs/

__init__.py

setup.py

facs.so

[*.c files]

utils/

__init__.py

galaxy.py

如果從層次結構中刪除“utils”,則可以導入fac并查看facs.so方法:

^{pr2}$

但是當我放回utils子模塊并嘗試導入不同的部分時,一個名稱空間似乎屏蔽了另一個名稱空間(utils屏蔽了facs.so導出的符號):>>> import facs

>>> dir(facs)

['__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__']

>>> import facs.utils

>>> facs.utils.galaxy.rsync_genomes("phix")

Traceback (most recent call last):

File "", line 1, in

AttributeError: 'module' object has no attribute 'galaxy'

>>> from facs.utils import galaxy

>>> galaxy.rsync_genomes("phix")

'Hello world'

如您所見,在dir(facs)、build、query和{}之后,galaxy都消失了

除非我改為執行from facs.utils import galaxy,否則無法正確導入

重新使用初始import語句并直接通過facs.utils.galaxy.rsync_genomes()進行訪問。在

總而言之,我對本模塊的預期用途是:>>> import facs

>>> dir(facs)

['__doc__', '__file__', '__name__', '__package__', 'build', 'query', 'remove'

, 'utils']

>>> facs.utils.galaxy.rsync_genomes("phix")

'Hello world'

(目前正在開發中)代碼位于:

萬一有人想自己試試。我用的是virtualenvs和我的$PYTHONPATH

似乎正確:/home/roman/.venvburrito/lib/python:

/home/roman/.virtualenvs/py27/lib/python2.7/site-packages

安裝似乎也很成功:cd ~/.virtualenvs/py27/lib/python2.7/site-packages/facs-2.0dev-py2.7.egg/

(py27)$ ls

EGG-INFO facs.py facs.pyc facs.so utils/

似乎沒有__init__.py文件實際被復制到頂層目錄,但是在那里觸摸或不觸摸它并不影響上面描述的導入行為。在

有什么想法嗎?提前謝謝!在

總結

以上是生活随笔為你收集整理的python好多模块和c相识_Python-Cext名称空间与常规Python子模块混合?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。