假設我有乙個非常簡單的包,其結構如下:.
├── 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...