第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

setup(name) 和 Extension(name) 的關(guān)系是什么

setup(name) 和 Extension(name) 的關(guān)系是什么

倚天杖 2021-10-12 16:13:20
我正在編寫(實(shí)際上是生成)一個(gè)setup.py腳本,用于使用多個(gè) C++ 源構(gòu)建單個(gè) Python 擴(kuò)展。目前還不清楚我什么是指定為名稱之間的關(guān)系name參數(shù)distutils.core.setup,并指定為名稱name參數(shù)distutils.core.Extension。所以當(dāng)我有這個(gè)時(shí):distutils.core.setup(  name = 'Abc',  ext_modules = [    distutils.core.Extension(      name = 'Xyz',      sources = ['a.cpp', 'b.cpp']    )  ])Abc和之間的關(guān)系是什么Xyz,特別是關(guān)于:彼此將用于在使用它的 Python 腳本中導(dǎo)入擴(kuò)展的名稱生成的.pyd(或.so)文件的名稱我在以下文檔中閱讀了此內(nèi)容distutils:Abc 是“包名”Xyz 是“擴(kuò)展的全名,包括任何包——即不是文件名或路徑名,而是 Python 點(diǎn)名”不幸的是,我無法從中破譯我的答案(可能是因?yàn)?Python 不是我的主要語言,我只是偶爾使用它)。如果相關(guān),上下文是我正在創(chuàng)建一個(gè) CMake 包裝器以將構(gòu)建 Python 擴(kuò)展合并到我項(xiàng)目的 CMake 框架中。
查看完整描述

1 回答

?
慕桂英3389331

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊

最大的誤解來源是“包”這個(gè)詞被重載了。游戲中有 4 個(gè)不同的名稱——用于開發(fā)的目錄名稱(包含setup.py的目錄名稱)、包含的目錄名稱__init__.py和其他可導(dǎo)入模塊的名稱、PyPI 中的分發(fā)名稱以及擴(kuò)展名。通常前 3 個(gè)相同或相似,但這不是必需的。


開發(fā)目錄的名字可以是任意的,它的名字沒有任何作用。當(dāng)然,正確命名它很方便,但這只是方便。


包含 Python 文件的目錄名稱命名要導(dǎo)入的包。一旦包被命名為導(dǎo)入,名稱通常會(huì)被卡住并且無法更改。


發(fā)行版的名稱在 PyPI 上給出了一頁和發(fā)行版文件的名稱(源發(fā)行版、雞蛋、輪子)。這是人們setup(name='distribution')呼喚的名字。


擴(kuò)展是 python 模塊,因此擴(kuò)展的名稱必須是正確的模塊名稱。但是輸入的名稱Extension()必須是模塊的完整 python 路徑,包括頂級(jí)包名稱。在你的例子中是


Extension(

  name = 'Abc.Xyz',

  sources = ['a.cpp', 'b.cpp']

)

這會(huì)產(chǎn)生一個(gè)可以導(dǎo)入為的擴(kuò)展


  import Abc.Xyz

或者


  from Abc import Xyz

或者


  from Abc.Xyz import <internal name>

讓我展示詳細(xì)的真實(shí)例子。我一直在維護(hù)一個(gè)名為CheetahTemplate的模板庫(kù)。我在名為cheetah3/. PyPI 的發(fā)行版稱為Cheetah3;這是我輸入的名字setup(name='Cheetah3')。因此,頂級(jí)模塊是Cheetah一個(gè) doimport Cheetah.Template或from Cheetah import Template; 這意味著我有一個(gè)目錄cheetah3/Cheetah/。


圖書館有一個(gè)擴(kuò)展名_namemapper。中使用的名稱Extension()是Cheetah._namemapper。


查看完整回答
反對(duì) 回復(fù) 2021-10-12
  • 1 回答
  • 0 關(guān)注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)