1

我已经使用 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 文件有关。你能帮我解决这个问题吗?

4

0 回答 0