相关疑难解决方法(0)

Python:两个具有相同名称的包; 你如何指定加载哪个?

我有两个包安装具有相同名称的不同包.它们都是"包",因为它们具有在命令setup.py中指定的顶级文件.package=['foo']setup

如果我安装使用distutils.core,最后安装将覆盖前一个(但我认为不会覆盖除非.py文件都具有相同的名称?).如果我安装使用setuptools,两个包安装到不同的鸡蛋.

一种选择是sys.path在导入包名之前明确设置; 这似乎是"非pythonic"而且很脏.

假设我在eggssetuptools中安装了这两个名称相同的软件包,我该如何指定导入的软件包?

python import

7
推荐指数
1
解决办法
2519
查看次数

setup.py中的Python包名称与pip名称

setup.py文件install_requires条目中列出依赖项时,如何指定要安装给定的软件包,必须将pip与软件包名称不同的名称传递给?

例如,我可以使用从PyPIpip安装,然后通过执行或类似操作在我的代码中使用。有没有办法告诉SetupTools 实体“提供” 软件包或其他东西?pyintervalfrom interval import interval, inf, imathpyintervalinterval

编辑:我找到了包装词汇表,它为我澄清了“分发包”和“导入包”之间的术语差异。就我而言,pyinterval是分发程序包,它提供了interval导入程序包。

python package pypi

5
推荐指数
1
解决办法
1525
查看次数

如何使代码中的 Python 包更新即时生效

我有以下代码行:

from pip import main as pipmain

# initial installation
pipmain(["install", "pyscenic==0.10.0"])
import pyscenic
pyscenic.__version__

# return 0.10.0
# Some large code here

# second installation
pipmain(["install", "install", "pyscenic==0.10.4"])
import pyscenic
pyscenic.__version__
# still return 0.10.0

# Another large chunk that required new version
Run Code Online (Sandbox Code Playgroud)

我想在我的代码中动态升级pyscenic包。然而,正如我上面指出的,在第二次安装中版本仍然没有改变。我预计它会更改为 0.10.4。我怎样才能正确地做到这一点?

我也尝试过这个,仍然没有效果:

import os
import importlib
os.system('pip install pyscenic==0.10.0')
import pyscenic
pyscenic.__version__
os.system('pip install pyscenic==0.10.4')
import pyscenic
pyscenic.__version__
importlib.reload(pyscenic)
pyscenic.__version__
Run Code Online (Sandbox Code Playgroud)

所有代码都在 IPython(交互式)上进行了测试。如果我退出IPython并再次重新输入它就会生效。但这不是我想要的。

python pip

5
推荐指数
1
解决办法
1381
查看次数

标签 统计

python ×3

import ×1

package ×1

pip ×1

pypi ×1