如何处理两个离的距离很远的python package?
比如A项目在/a/b/c/A_project
而B项目在/aa/bb/cc/dd/B_project
,文件离的很远,但是需要相互import包。
问题是A、B 2个 project都很大,移动起来非常费劲,但是又需要相互的包,这种情况如何是好?
可以尝试sys.path.append(B_project_path)
,这样运行没问题,但是无法方便的ctrl+左键点击进入类。
是否有更好的方法?
在Python中处理距离较远的两个项目包并相互导入,确实可以通过修改sys.path
来实现,但这确实会影响到IDE的自动跳转和提示功能。一个更好的解决方案是将这两个项目都作为可安装的Python包来处理,这样无论它们位于文件系统的哪个位置,都可以通过Python的包管理机制来导入。
以下是一些步骤来实现这一点:
* 为每个项目创建一个`setup.py`文件(或使用`pyproject.toml`和`poetry`等现代包管理工具)。* 确保每个项目的目录结构都遵循Python包的规范,即包含一个`__init__.py`文件(对于Python 3.3及以上版本,空文件夹也可以作为包,但`__init__.py`仍然有助于明确包的边界)。
* 使用`pip install -e .`在开发模式下安装每个项目。这会将项目链接到它们的源代码,这样任何对源代码的更改都会立即反映到已安装的包中。* 或者,你可以将项目打包为分发格式(如wheel或sdist),然后安装这些分发包。
* 一旦项目被安装为Python包,你就可以像导入任何其他Python包一样导入它们,无论它们在文件系统中的位置如何。
* 大多数现代IDE(如PyCharm、VSCode等)都支持Python的包管理机制,并能正确识别已安装的包。这意味着你应该能够在IDE中使用ctrl+左键点击进入类和其他定义。
* 将你的项目包上传到版本控制系统(如Git),这样其他开发者也可以轻松地克隆和安装它们。
* 在`setup.py`或`pyproject.toml`中列出项目的依赖项,这样其他开发者在安装项目时也会自动安装这些依赖项。* 为项目编写文档,说明如何安装和使用它们。
通过这种方法,你可以确保项目的导入和依赖管理都是清晰和可维护的,同时也不会影响IDE的功能。
问题内容: 我想获取两个列表并查找两个列表中都出现的值。 [5]例如,将返回。 问题答案: 使用,它快速且可读。
然而,由于某些原因,所有这些按钮都相距很远,我不太确定它们的确切位置是由什么逻辑决定的。这是我的代码,用于设置窗口和按钮: 如果有人能告诉我为什么以及如何让按钮和字段离得更近,我将不胜感激。
我有两个数组: 我需要编写一个方法,该方法返回array1中元素的数组,该数组在字符串项中包含array2中的任何项。因此该方法应该返回: 我尝试了,但它只返回array1。我该怎么办?
问题内容: 想象一下这个目录结构: 我正在编码,我需要从中导入一些东西。我该怎么办? 我尝试过,但是得到了“未打包的相对导入尝试”。 我四处搜寻,但只发现骇客。有没有一种干净的方法? 问题答案: 每个人似乎都想告诉你应该做什么,而不仅仅是回答问题。 问题是你通过将作为参数传递给解释器而将模块作为运行。 从PEP 328: 相对导入使用模块的属性来确定该模块在包层次结构中的位置。如果模块的名称不包含
问题内容: 在Python + Sqlite中是否有可用的字符串相似性度量,例如与模块有关? 用例示例: 此查询应匹配ID为1的行,但不匹配ID为2的行: 如何在Sqlite + Python中做到这一点? 关于我到目前为止发现的注释: 该Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到一
我想写一个函数来计算中的坐标与中的每个坐标之间的欧氏距离,并通过列生成维度行的距离数组(其中是中的坐标数,是中的坐标数)。 NB:为了简单起见,我不想使用任何其他库。 运行该函数将生成: 我一直在试着运行下面的程序 但我得到以下错误: 非常感谢。