如何导入站点包的模块,而不是当前目录中具有相同名称(python 3.x)的模块?

问题描述 投票:0回答:2

我是熊猫图书馆的重度用户。为了保持与熊猫库相关的有用的定制帮助程序功能,我决定在其中创建一个定制项目(my_proj)和一个模块pandas.py。现在,我正在同一项目中开发另一个与ssh协议相关的自定义模块。

模块是用pycharm创建的。项目结构如下:

my_proj/src/my_proj/pandas.py
my_proj/src/my_proj/ssh.py

一切都很好,并且可以正常工作。当我想使用站点包的熊猫时,我执行import pandas as pd,当我想使用my_proj熊猫时,我执行from my_proj import pandas as mypd

但是,现在在ssh.py中,我需要站点包的熊猫(不是my_proj熊猫)。如果在ssh.py中,我使用import pandas as pd,则pycharm会导入my_proj/src/my_proj/pandas.py,而不是从站点包中导入熊猫。

一种解决方案是将my_proj的pandas.py重命名为其他名称,但如果可能的话,我想避免这种情况。

还有另一种选择来阻止从当前目录加载库并从站点包中导入它吗?

我有什么选择?

python pandas import pycharm site-packages
2个回答
1
投票

我认为您可以确切地告诉python从哪个目录提取熊猫。从my_proj / src / my_proj / ssh导入熊猫。


1
投票

最后,我将使用以下过程:

import sys
old_syspath = sys.path
sys.path = [path for path in sys.path if 'customspace' not in path]

import pandas as pd
sys.path = old_syspath

[基本上,我要从sys.path中删除'customspace',而不是导入熊猫并将sys.path放回原处。

我认为这是最小的更改,并且正在起作用。

© www.soinside.com 2019 - 2024. All rights reserved.