python - 如何设置我的路径,以便它与作为包本地安装的 Python 代码一起使用
问题描述
我正在开发一组应该作为一个包一起工作的 python 文件。该文件具有以下结构。
PyFinances
├─.venv
├─LICENSE
├─Makefile
├─README.rst
├─requirements.txt
├─setup.py
├─test
│ ├─test_pyfinances.py
│ └─read_files.py
└─PyFinances
├─pyfinances.py
└─read_files.py
文件中的标头和第一个函数pyfinances.py
如下所示
import numpy as np
import pandas as pd
from read_files import ReadRunOptionsFile
def pyfinances():
"generic content here"
return 25.0
我使用以下两个命令在虚拟环境中成功安装了代码
pip3 install wheel
pip3 install .
产生以下响应
Successfully installed PyFinances-0.1.0
为了测试包安装,我cd
距离源代码所在的 4 或 5 个目录,在test.py
文件顶部创建一个标题为以下 import 语句的文件
from PyFinances.pyfinances import pyfinances
导入似乎有效,因为它没有告诉我它不识别 PyFinances,而是它不识别read_file
模块,我得到了错误。
ModuleNotFoundError: No module named 'read_files'
我该如何解决这个问题?
解决方案
嗯......你没有进口_read_files
,你进口pyfinance
。以下是您可能应该做的事情:
import PyFinances.pyfinances as pfy
import PyFinances.read as pfr
为此,我应该注意,您必须从源文件名的开头删除下划线(并相应地编辑 setup.py)。您命名它们的方式仅允许使用 a from ... import ...
,而不允许使用import ... as ...
而且,您还缺少__init__.py
每个目录。它不需要任何代码,您只需要它存在于PyFinances/
、PyFinances/test/
和PyFinances/PyFinances/
.
推荐阅读
- javascript - Javascript:什么是回调?
- java - 无法使用 Lettuce 连接到本地 Redis 集群
- javascript - 如何使用 flatlist 集成 react-native-swiper
- c# - 如何在子级没有导航属性的情况下映射父级=>子级
- javascript - 如何使用 jquery sortable 对一组元素进行排序并防止放置一个点
- c# - 如何创建仅包含选定属性的 Cosmos DB IQueryable?
- ios - 停止渲染后如何清除 RTCEAGLVideoView?
- r - 如何修复 r 中匹配元素的返回
- httrack - 无法使用 HTTrack 登录网站
- python - 来自雅虎财经的网页抓取信息