繁体   English   中英

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

[英]How to import site package's module instead of one in current directory that has the same name (python 3.x)?

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

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

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

一切正常,工作正常。 当我想使用站点包的 pandas 时,我执行import pandas as pd ,当我想使用 my_proj pandas 时,而不是使用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 从哪个目录中提取熊猫。 EX from my_proj/src/my_proj/ssh 导入熊猫。

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

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”,而不是导入 Pandas 并将 sys.path 恢复原样。

我认为这是最小的变化并且它正在起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM