如何设置路径,使其与本地安装为包的Python代码一起工作

如何设置路径,使其与本地安装为包的Python代码一起工作,python,python-3.x,pip,Python,Python 3.x,Pip,我正在开发一组python文件,它们应该作为一个包一起工作。该文件具有以下结构 PyFinances ├─.venv ├─LICENSE ├─Makefile ├─README.rst ├─requirements.txt ├─setup.py ├─test │ ├─test_pyfinances.py │ └─read_files.py └─PyFinances ├─pyfinances.

我正在开发一组python文件,它们应该作为一个包一起工作。该文件具有以下结构

    PyFinances
    ├─.venv
    ├─LICENSE
    ├─Makefile
    ├─README.rst
    ├─requirements.txt
    ├─setup.py
    ├─test
    │  ├─test_pyfinances.py
    │  └─read_files.py
    └─PyFinances
       ├─pyfinances.py
       └─read_files.py
pyfinancials.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
要测试软件包安装,请在源代码所在的4或5个目录之外的I
cd
I目录中创建一个名为
test.py
的文件,文件顶部有以下导入语句

from PyFinances.pyfinances import pyfinances
导入似乎起了作用,因为它没有告诉我它不识别PyFinancials,而是不识别
read_file
模块,我得到了错误

ModuleNotFoundError: No module named 'read_files'

如何解决此问题?

嗯。。。您没有导入
\u read\u files
,而是导入了
pyfinance
。以下是您可能应该做的:

导入PyFinancials.PyFinancials作为pfy
导入PyFinancials.read为pfr
我应该注意到,要使其起作用,必须从源文件名的开头删除下划线(并相应地编辑setup.py)。您命名它们的方式只允许使用来自的
。。。导入…
,并且不导入。。。作为…


而且,在每个目录中都缺少
\uuuu init\uuuuuuuuuy.py
。它不需要任何代码,您只需要它存在于
PyFinances/
PyFinances/test/
PyFinances/PyFinances/

中,为什么要在文件前面加上前缀?这意味着您无法使用
import
导入它们,而不使用
from
首先,每个下必须有
\uuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupy
directory@anurag有一个init.py文件。我忘了把它放在我的目录结构中。我花了一点时间才明白下划线是什么意思。模块名称前面没有uu符号。_u仅表示该文件存在于目录树中其上方所示的目录下。因此,模块是读取文件,而不是读取文件。另外,还有一个init.py文件,我忘了把它放在目录树描述中,我会马上修复它。还有,为什么我要在主文件中导入PyFinances.read,而read是由PyFinances导入的,这就是我想要的吗?@Jon-ooh,明白了。我将从我的回答中删除这一点。我也可以修改一下你的问题,让它更清楚一点。我刚刚做了,谢谢你的回答advice@Jon如果我的回答对你有用,一定要接受。如果你不这样做,别人可能会认为这个问题没有解决的答案。我想我不明白你的答案。在将软件转换成一个包之后,我创建了一个名为test.py的文件,删除了许多目录,因此它没有链接到源代码,而是创建了一个包。您是否建议我将PyFinancials.read作为pfr导入该文件?如果是,为什么?我只想要PyFinancials模块中的PyFinancials函数。PyFinancials模块导入读取模块以支持PyFinancials功能。