使用setup.py安装自定义Python包时遇文件占用错误求助
自定义Python包安装报错处理
项目结构
/SRC /package_one __init__.py script.py # script.py 从functionality.py导入内容 /package_two __init__.py functionality.py setup.py
代码片段
script.py
from package_two import functionality functionality.execute()
functionality.py
def execute(): print("Running functionality")
setup.py
from setuptools import setup, find_packages setup(name='pckage_two', packages=find_packages())
问题
在VS Code的Anaconda终端执行安装命令:
C:\Users\XXXX\XXXX\src> python setup.py install
出现错误:
the process cannot access the file because it is being used by another process: 'c:\\users\\XXXX\\anaconda3\\lib\\site-packages\\pckage_two-0.0.0-py3.9.egg'
环境补充:使用Anaconda+VSCode,已在两个终端分别尝试过安装命令。
解决步骤
- 释放文件占用
- 关闭VS Code中所有
package_two相关的文件标签,终止所有正在运行的Python进程(包括Anaconda后台进程),再重新执行安装命令。
- 关闭VS Code中所有
- 改用开发模式安装
开发模式不会生成静态.egg文件,而是创建源码链接,避免文件锁定问题:
或者用setuptools的开发模式:pip install -e .python setup.py develop - 手动清理残留文件
若进程关闭后仍无法安装,直接删除c:\\users\\XXXX\\anaconda3\\lib\\site-packages\\pckage_two-0.0.0-py3.9.egg文件,再重新执行安装。 - 修正包名不一致问题
setup.py中包名写的是pckage_two(缺一个'a'),但实际目录是package_two,建议统一包名:from setuptools import setup, find_packages setup(name='package_two', packages=find_packages())
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

