注释
好主意!!! |
@petmakris是在 python 中自动安装依赖项的标准方法吗? |
@petmakris你能创建文件吗?我很感兴趣在下一个版本中有这个。 |
看着它。 |
正确构建 python 项目意味着您为项目配置 setuptools,以便您声明
这样做允许将您的软件作为(通常)轮子分发,并允许使用简单的命令进行安装 从 PyPI 安装
从 wheel 文件安装
此命令将(获取 bCNC 轮并)安装 bCNC 的依赖项,并将使 bCNC 可执行文件在系统范围内可用。 这也使升级/卸载变得简单,并允许在沙箱中进行开发, 文件的结构 from setuptools import setup, find_packages
setup(
name = "bCNC",
version = "0.1",
packages = find_packages(),
author = "Author",
install_requires = [
'cherrypy==18.0.1',
'jinja2==2.10',
'requests==2.20.1',
'mysql-connector-python==8.0.13',
'simplejson==3.16.0',
# https://google-auth.readthedocs.io/en/latest/index.html
'google-auth==1.6.1'
],
entry_points = {
'console_scripts': [
'bCNC = {package}.{module}:{main_function}',
]
}
)
并记录在这里 https://setuptools.readthedocs.io/en/latest/setuptools.html 前段时间我在这里写了一篇关于构建 python 项目的教程 https://petmakris.github.io/structuring-a-python-project 这 虽然完全可行并且我们应该去做,但 bCNC 项目目前在使用 python 包和导入方面结构不是很好,这需要一些时间。 或者,如果只关心依赖项而不关心分发,则该
该
但这是为了本地开发,对分发没有帮助,我们应该去 可以转储当前安装的模块, 实际上两者 我们不要将它包含在下一个版本中,因为快速重组项目似乎非常复杂(所有导入都必须更改,要创建 pacakes 等等? ). |
哇!我真的很想在下一个版本之前这样做! 这看起来也是很好的来源:https ://packaging.python.org/tutorials/packaging-projects/ 我已经在 PyPi 上创建了项目:https ://pypi.org/project/bCNC/ |
好的。我刚刚开始研究它并且已经遇到问题: |
是否足以将所有内容移动到 |
|
但是因为 也许是相同的 API 和无缝过渡 |
你能先检查一下你需要的 python dep 是否是 PIL 吗?
您最初是如何安装 python-imaging-tk 的? |
给个提示 执行以下操作以检查您的依赖项是否适用于您的项目。 在 bCNC 根文件夹中创建一个虚拟环境 python -m venv venv # python 3
或者 pip install virtualenv # python 2
virtualenv venv
获取 virtualenv
现在如果你做 a你会发现除了and (and maybe ) 现在,使用你做的这个干净的 virtualenv
(注意 这样你就可以测试配置的 deps |
是的。这是。准确地说,我使用 Pillow,它是 PIL 叉子。但我认为它们是可以互换的。 我已经设置了虚拟环境并 pip2 安装了以下软件包:
bCNC 现在可以在这个虚拟环境中工作。这是否意味着 tkinter 默认包含在 python 中? |
我首先在 PyPI 上构建,但它无法导入其他文件: pip2 安装 bCNC –upgrade
当我更改为时,它会 我不明白为什么会这样,因为 main.py 中有以下代码:
在我看来,路径被忽略了 |
我已经准备好目录结构,但我仍然无法导入东西。我也有点担心插件之类的东西在这种“python 模块”方法中会如何工作。因为加载插件是基于枚举目录并导入在那里找到的所有文件。不确定是否可以在 python 模块中完成。 |
|
我需要向 MANIFEST.in 添加一些文件,现在一切都使用 pip 安装和启动。但是它仍然给我很多错误。 你可以试试:
|
好的,现在一切都运行起来没有抛出错误,但是 bCNC 的某些部分根本不起作用。例如:帮助窗口中的图像或 slicemesh 插件的保存设置。但它不会给出任何错误,因此很难修复。为什么会发生这种情况的任何想法? |
@petmakris你能试试模块版本吗?我需要一些人来测试 bCNC 的模块版本。 当我将 bCNC 作为 python 模块运行时,没有任何插件可以保存/加载它的配置。当我直接运行 bCNC 时,它可以工作。没有错误显示。这怎么可能?你能看看这个吗? |
顺便说一句,我使用 ArchLinux 进行开发,但我刚刚尝试使用 pip2 install 安装 Ubuntu 18.04.1 LTS 和 bCNC,没有任何问题。OTOH 在 Ubuntu 14.04.5 LTS 上,由于 OpenCV 的一些问题或其他原因,它没有安装……但我仍然认为能够使用单个命令安装到最新的 Ubuntu 是非常酷的。 |
我想我正在做某事。我已将以下调试消息添加到 config = ConfigParser.ConfigParser()
print "new-config", __name__, config
当我将 bCNC 作为模块运行时,它会创建两个配置解析器实例:
当我直接运行它时,它只会创建该配置解析器的单个实例:
那是因为在不同的 |
真诚的 ^2 道歉,我不会很快检查出来,努力工作:( 不过,您所做的一切都朝着正确的方向发展。这种构建 python 的方法是唯一的方法(而不仅仅是推荐的方法),它会揭示将来会导致问题的问题。 |
安装工具已实施。配置是单独的问题。我将关闭它并在#1053中跟踪它 |
我认为这个项目需要适当的配置,
a 至少 a
setup.py
参考所有项目依赖项。我应该去吗?你接受公关吗?
谢谢