如何解决压缩来自不同项目的文件和文件夹并导入另一个项目
我有以下方式的python项目结构
common_project
|---folder
| |--- file1.py
| |--- file2.py
| |--- file3.py
project
|---src
|----|---main_file.py
我需要访问main_file.py中file1.py和file2.py的函数。如何压缩公共文件夹的文件以便我可以导入
from common.file1 import func1
我尝试将文件夹压缩为 zip -r common_files.zip common_project/folder/
。但文件被压缩为:
adding: common_project/folder/file1.py (stored 0%)
adding: common_project/folder/file2.py
但我需要导入为 from common import file1.py
任何帮助都值得赞赏。
解决方法
如果您希望能够按指示进行导入,则必须相应地构建 zip 文件:
common
|--- file1.py
|--- file2.py
|--- file3.py
我不知道您是否可以直接使用 zip
来实现。我使用符号链接作为解决方法:
$ ln -s common_project/folder common
$ zip -r common_files.zip common
adding: common/ (stored 0%)
adding: common/file1.py (deflated 10%)
adding: common/file3.py (deflated 10%)
adding: common/file2.py (deflated 10%)
$ rm common
$ unzip -l common_files.zip
Archive: common_files.zip
Length Date Time Name
--------- ---------- ----- ----
0 2021-02-22 13:46 common/
41 2021-02-22 13:50 common/file1.py
41 2021-02-22 13:50 common/file3.py
41 2021-02-22 13:50 common/file2.py
--------- -------
123 4 files
您还需要做的一件事是将 zip 文件添加到 Python 的导入搜索路径:
$ PYTHONPATH=/absolute/path/to/common_files.zip python
然后导入应该可以工作:
>>> from common.file1 import func1
>>> func1()
This is func1
>>> from common import file2
>>> file2.func2()
This is func2
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。