我已经使用 pipenv 安装了某些 python 包和 netifaces 包,然后将其导出到 requirements.pip。工作流程如下。
export PIPENV_VENV_IN_PROJECT=1
pipenv --three
# Arrange packages alphabetically for easy search.
declare -a pkg_list=( \
"multiprocessing-logging" \
"nested-lookup" \
"netifaces" \
"openstacksdk" \
"oslo_config" \
"oslo.messaging" \
"paramiko" \
"pika"
)
# Iterate through the array and install each package.
for i in "${pkg_list[@]}"
do
echo Installing "$i"
pipenv install $i
done
# Lock the pipenv.lock file and also generate requirements file
# to be used for download packages uing 'pip install -d'
pipenv lock
pipenv lock -r > requirements.pip
后来我使用 requirements.pip 文件在任何我想要的地方重新创建已安装的包映像,如下所示。
# Download python packages to a local pkg folder.
python3 -m pip install --target=./pkg -r ./requirements.pip
重新创建包后,我netifaces
在 site-package 文件夹中看不到包的源/包文件夹,并且我的应用程序无法导入包。
site-package 文件夹包含以下文件,我不确定应用程序如何找不到包并抱怨它。
ls -lrt pkg/ | grep neti
-rwxr-xr-x 1 user eng 68095 Mar 12 00:42 netifaces.cpython-36m-x86_64-linux-gnu.so
drwxr-xr-x 2 user eng 4096 Mar 12 00:42 netifaces-0.10.9.dist-info
我不确定这是否与上面的 .so 文件有关。你能帮我解决这个问题吗?