下载 Windows embeddable package (64-bit)安装包,注意是embeddable版本的,并不是传统安装包,同时版本也需要和开发项目的Python版本吻合:
随后将其解压到项目的,并且下载 get-pip.py https://bootstrap.pypa.io/get-pip.py文件,放入到刚刚解压的安装包内,放入之后的目录结构如下:
D:\work\YiJianBaPu\python310>tree /f
Folder PATH listing for volume 新加卷
Volume serial number is 9824-5798
D:.
get-pip.py
libcrypto-1_1.dll
libffi-7.dll
libssl-1_1.dll
LICENSE.txt
pyexpat.pyd
python.cat
python.exe
python3.dll
python310.dll
python310.zip
python310._pth
pythonw.exe
select.pyd
sqlite3.dll
unicodedata.pyd
vcruntime140.dll
vcruntime140_1.dll
winsound.pyd
_asyncio.pyd
_bz2.pyd
_ctypes.pyd
_decimal.pyd
_elementtree.pyd
_hashlib.pyd
_lzma.pyd
_msi.pyd
_multiprocessing.pyd
_overlapped.pyd
_queue.pyd
_socket.pyd
_sqlite3.pyd
_ssl.pyd
_uuid.pyd
_zoneinfo.pyd
随后在项目的根目录执行命令:
.\python310\python.exe .\python310\get-pip.py
注意这里的python.exe并不是本地开发环境的Python,而是嵌入式解释器的Python。
此时我们的目录中多出两个文件夹Lib和Scripts:
D:\work\YiJianBaPu\python310>tree
Folder PATH listing for volume 新加卷
Volume serial number is 9824-5798
D:.
├───Lib
│ └───site-packages
│ ├───pip
│ │ ├───_internal
│ │ │ ├───cli
│ │ │ │ └───__pycache__
│ │ │ ├───commands
│ │ │ │ └───__pycache__
│ │ │ ├───distributions
│ │ │ │ └───__pycache__
│ │ │ ├───index
│ │ │ │ └───__pycache__
│ │ │ ├───locations
│ │ │ │ └───__pycache__
│ │ │ ├───metadata
│ │ │ │ ├───importlib
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───models
│ │ │ │ └───__pycache__
│ │ │ ├───network
│ │ │ │ └───__pycache__
│ │ │ ├───operations
│ │ │ │ ├───build
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───install
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───req
│ │ │ │ └───__pycache__
│ │ │ ├───resolution
│ │ │ │ ├───legacy
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───resolvelib
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───utils
│ │ │ │ └───__pycache__
│ │ │ ├───vcs
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ ├───_vendor
│ │ │ ├───cachecontrol
│ │ │ │ ├───caches
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───certifi
│ │ │ │ └───__pycache__
│ │ │ ├───chardet
│ │ │ │ ├───cli
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───metadata
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───colorama
│ │ │ │ ├───tests
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───distlib
│ │ │ │ └───__pycache__
│ │ │ ├───distro
│ │ │ │ └───__pycache__
│ │ │ ├───idna
│ │ │ │ └───__pycache__
│ │ │ ├───msgpack
│ │ │ │ └───__pycache__
│ │ │ ├───packaging
│ │ │ │ └───__pycache__
│ │ │ ├───pkg_resources
│ │ │ │ └───__pycache__
│ │ │ ├───platformdirs
│ │ │ │ └───__pycache__
│ │ │ ├───pygments
│ │ │ │ ├───filters
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───formatters
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───lexers
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───styles
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───pyparsing
│ │ │ │ ├───diagram
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───pyproject_hooks
│ │ │ │ ├───_in_process
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───requests
│ │ │ │ └───__pycache__
│ │ │ ├───resolvelib
│ │ │ │ ├───compat
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───rich
│ │ │ │ └───__pycache__
│ │ │ ├───tenacity
│ │ │ │ └───__pycache__
│ │ │ ├───tomli
│ │ │ │ └───__pycache__
│ │ │ ├───truststore
│ │ │ │ └───__pycache__
│ │ │ ├───urllib3
│ │ │ │ ├───contrib
│ │ │ │ │ ├───_securetransport
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───packages
│ │ │ │ │ ├───backports
│ │ │ │ │ │ └───__pycache__
│ │ │ │ │ └───__pycache__
│ │ │ │ ├───util
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───webencodings
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ └───__pycache__
│ ├───pip-23.3.1.dist-info
│ ├───pkg_resources
│ │ ├───extern
│ │ │ └───__pycache__
│ │ ├───_vendor
│ │ │ ├───importlib_resources
│ │ │ │ └───__pycache__
│ │ │ ├───jaraco
│ │ │ │ ├───text
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───more_itertools
│ │ │ │ └───__pycache__
│ │ │ ├───packaging
│ │ │ │ └───__pycache__
│ │ │ ├───platformdirs
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ └───__pycache__
│ ├───setuptools
│ │ ├───command
│ │ │ └───__pycache__
│ │ ├───config
│ │ │ ├───_validate_pyproject
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ ├───extern
│ │ │ └───__pycache__
│ │ ├───_distutils
│ │ │ ├───command
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ ├───_vendor
│ │ │ ├───importlib_metadata
│ │ │ │ └───__pycache__
│ │ │ ├───importlib_resources
│ │ │ │ └───__pycache__
│ │ │ ├───jaraco
│ │ │ │ ├───text
│ │ │ │ │ └───__pycache__
│ │ │ │ └───__pycache__
│ │ │ ├───more_itertools
│ │ │ │ └───__pycache__
│ │ │ ├───packaging
│ │ │ │ └───__pycache__
│ │ │ ├───tomli
│ │ │ │ └───__pycache__
│ │ │ └───__pycache__
│ │ └───__pycache__
│ ├───setuptools-68.2.2.dist-info
│ └───_distutils_hack
│ └───__pycache__
└───Scripts
随后修改python310._pth文件,将内容改成下面这样:
python310.zip
.
# Uncomment to run site.main() automatically
import site
至此,嵌入式解释器就配置好了。
嵌入式安装依赖
此后,当我们需要安装依赖时,必须用嵌入式的解释器进行安装:
.\python310\python.exe -m pip install noisereduce -t E:\work\YiJianBaPu\python310\Lib\site-packages
上面的命令展示如何嵌入式安装依赖库noisereduce。
这里需要注意的时,解释器必须是嵌入式解释器.\python310\python.exe,同时通过-t参数来指定三方库的位置,也就是说,必须安装到项目的目录中,而不是系统的默认开发环境目录。
安装成功后,我们必须可以在项目的目录下可以找到这个库:
D:\work\YiJianBaPu\python310\Lib\site-packages>tree
Folder PATH listing for volume 新加卷
Volume serial number is 9824-5798
D:.
├───noisereduce
│ ├───spectralgate
│ │ └───__pycache__
│ ├───torchgate
│ │ └───__pycache__
│ └───__pycache__
如此,依赖和解释器就紧密结合在一起了,换台机器,并不需要安装也可以直接启动。
此处评论已关闭