python存根檔案 打包存根檔案

2021-10-18 15:19:10 字數 1691 閱讀 2019

假設我有乙個非常簡單的包,其結構如下:.

├── foo

│   ├── bar

│   │   └── __init__.py

│   └── __init__.py

└── setup.py

檔案內容:setup.py:from distutils.core import setup

setup(

name='foobar',

version='',

packages=['foo', 'foo.bar'],

url='',

license='apache license 2.0',

author='foobar',

author_email='',

description=''

foo/bar/__init__.py:def foobar(x):

return x

其餘檔案為空。

我使用pip安裝包:cd foobar

pip install .

並確認安裝正確。在

現在我想用存根檔案建立乙個單獨的包:.

├── foo

│   ├── bar

│   │   └── __init__.pyi

│   └── __init__.pyi

└── setup.py

檔案內容:setup.py:from distutils.core import setup

import sys

import pathlib

setup(

name='foobar_annot',

version='',

packages=['foo', 'foo.bar'],

url='',

license='apache license 2.0',

author='foobar',

author_email='',

description='',

data_files=[

'shared/typehints/python{}.{}/foo/bar'.format(*sys.version_info[:2]),

["foo/bar/__init__.pyi"]

foo.bar.__init__.pyi:def foobar(x: int) -> int: ...

{看不出這個包是什麼意思,但我無法識別它。當我把pyi檔案放在主包中時,一切正常。在

如果您能給我一些建議,我將不勝感激:我一直試圖從pep 484 - storing and distributing stub files中理解一些道理,但沒有用。即使是pathlib部分似乎也冒犯了我的distutils

我試著把存根放進.pycharmx.x/config/python-skeletons,但沒用

有些方法可行,但不能解決問題:將存根檔案放入當前專案並標記為原始檔。在

在某些情況下,將存根路徑新增到包中(至少在某些情況下)。在

因此,問題是:如何使用python存根建立乙個最小的、可分發的包,這將被現有工具識別。根據實驗,我懷疑有兩個問題:我誤解了shared/typehints/pythonx.y中的包應該建立的結構-如果這是真的,我應該如何定義data_files?在

它應該可以正常工作,但我犯了一些配置錯誤,並尋找不存在的外部問題。在

有沒有既定的程式來解決這樣的問題?在

Python檔案打包

輸入cmd命令 pip install pyinstaller 第二步 在我的電腦裡面找到程式資料夾,shift 右鍵,找到在此處開啟powershell視窗開啟 第三步 輸入打包命令 w 表示隱藏程式執行時的命令列視窗 不加 w會有黑色cmd視窗 建議打包時先不加 w,萬一程式出錯,這樣就能彈出錯...

Python3 檔案打包與解包

python 中內建了打包的庫,我們直接使用即可 zip usr bin env python3 coding utf 8 import zipfile zip 打包 z zipfile.zipfile black.zip w 建立乙個空包 zip 解包 z zipfile.zipfile blac...

5 檔案許可權 檔案壓縮打包

命令 解釋ls lh 顯示許可權 chmod ugo rwx dir1 新增所有者 群組 其他人在dir1的讀 寫 執行許可權 chmod go rex dir1 刪除群組 其他人對dir1讀 寫 執行許可權 chown user1 file1 更改file1的所有者為user1 chown r u...