在某些程序上,您可以在演示期间运行它们,例如“十个任务”或“5小时”,然后您需要决定购买它们以继续使用它们,但是如果您删除并卸载该程序然后重新安装它,它就会知道它之前已安装,不会让您再次运行演示。
它是如何做到这一点的?当您下载它时,它是否会向 CDN 发送一个识别码(IP?)以让它知道您之前已经下载过它,或者当程序本身安装时,它是否会检查以前安装的痕迹?
正如pytest 文档中所建议的,我设置了我的包,目的不是不将我的测试与我的包一起分发:
\n\nsetup.py\nmypkg/\n __init__.py\n mypkg/\n appmodule.py \ntests/\n test_app.py\n ...\nRun Code Online (Sandbox Code Playgroud)\n\n但我对如何确保这些测试在存在时正确运行(例如在 Travis CI 上或在项目目录的克隆中)感到困惑。
\n\n我希望测试脚本中的导入应用于相邻mypkg/目录中的源(而不是任何mypkg可能安装在 中的源site-packages),但我遇到了令我困惑的错误。
如果我遵循文档中的建议pytest并且不__init__.py添加tests/then
from __future__ import absolute_import\nfrom mypkg.appmodule import * \nRun Code Online (Sandbox Code Playgroud)\n\n我明白了
\n\n\n\n\n导入错误:没有名为 mypkg.appmodule 的模块
\n
当与
\n\nfrom __future__ import absolute_import\nfrom ..mypkg.appmodule import * \nRun Code Online (Sandbox Code Playgroud)\n\n我明白了
\n\n\n\n\nValueError:尝试在非包中进行相对导入
\n
如果我忽略文档并包含一个__init__.py,那么对于后者我会得到
\n\n\nValueError:尝试超出顶级包的相对导入
\n
仅通过包含 …
我有一个包含多个.pyx文件的 Cython 项目。为了分发我的项目,我想按照 Cython 文档中的建议提供我生成的.c文件,以尽量减少不同 Cython 版本的问题。
我当前的工作流程是使用以下方法构建项目:
me@machine$ python setup.py build_ext --inplace
Run Code Online (Sandbox Code Playgroud)
这 cythonizes(即使用 Cython将.pyx文件转换为.c / .cpp文件)所有.pyx文件,然后编译它们。对于发行版,我不需要已编译的 ( .so ) 文件,因此我基本上忽略了它们。问题是,我在无用的编译上浪费了很多时间。
有没有办法使用cythonize文件夹中的所有.pyx文件setup.py,而不编译它们?
$ cython my_file.pyx我有大约 20 个.pyx文件,它们具有不同的编译器指令。cython为每个文件调用命令行比仅仅等待它编译要慢。
另一方面,创建一个 shell 脚本来对它们进行 cythonize 会给我留下第二个需要保持最新的编译器指令列表。我宁愿不这样做,以保持我可能的失败点最小。
我需要修改 gradle 为distTar任务生成的启动脚本。我似乎能够设置 unixStartScriptGenerator.template如下所示,但是当我从 tar 解压缩脚本时,我的更改不存在。
这是我的完整内容build.gradle:
apply plugin: 'java'
apply plugin: 'war'
// to use the main method in Main, which uses Jetty
apply plugin: 'application'
mainClassName = 'com.example.Main'
project.version = '2017.0.0.0'
repositories {
mavenLocal()
mavenCentral()
}
task createStartScripts(type: CreateStartScripts) {
// based on https://github.com/gradle/gradle/tree/v3.5.0/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins
def tplName = 'unixStartScriptTemplate.txt'
// this succeeds. I tried negating it to ensure that it runs, and it failed, so it's running.
assert project.file(tplName).exists();
unixStartScriptGenerator.template = project.file(tplName).newReader() as …Run Code Online (Sandbox Code Playgroud) java software-distribution gradle build.gradle gradle-plugin
我正在考虑使用 Matlab 编译器来按价格分发软件。我正在研究(非常)简单的方法来阻止重新分发而不打扰用户。有什么建议吗?
一种想法是通过电子邮件向用户发送许可证密钥,并让他们在安装过程中输入该密钥,以便在许可证服务器上进行验证。如果密钥与服务器上的密钥匹配,则安装将照常进行,否则,将显示一条警告消息,通知用户购买另一个许可证。然而,这种方法要求指定的功能仅在安装过程中运行,而不是在安装之后运行(以免惹恼用户)。使用 Matlab 编译器或其他方式可以实现这一点吗?
我想我可以在用户的磁盘上创建一个文件,程序在启动时会查找该文件(如果存在,则不是第一次运行),但是如果用户复制整个目录,则该文件将被复制也。
我已经为我自己的流程构建了一个 Python 3 模块。
我使用 cython 来编译和包装 C++ 源代码。
我有一台带有 Python 3.4 的 Linux (Debian Jessie) 机器,因此 cythonize 为我制作了一个Processing.cpython-34m.so并将其复制到/usr/local/lib/python3.4/dist-packages.
但是当我在另一台装有 python3.5 的机器上使用它时,我必须重新编译所有内容。
如何从我的机器上为所有 Python 3 版本和多个平台构建 Linux 或 pip 包(这里只有 Jessie 和 Stretch,它们可能非常接近,实际上是相等的)?最好不需要在我的机器上安装所有版本的 Python 3。
这是我的 cythonization 的 setup.py 文件:
from distutils.core import setup, Extension
from Cython.Build import cythonize
setup(ext_modules = cythonize(Extension(
"MyProcessing",
sources=["MyProcessing.pyx", "myprocess.cpp", "mythirdp.cpp"],
language="c++",
)))
Run Code Online (Sandbox Code Playgroud)
谢谢。
所以,我正在用电子构建和打包一个软件。现在我已经制作了软件并获得了一个.deb文件(在 Ubuntu 中),我想将其上传到我的 launchpad ppa,以便每个人都可以轻松安装/更新它。问题是,ppa 不.deb直接接受文件,我不知道如何打包应用程序以便将其上传到 ppa。与此相关的问题很少,但没有一个有完整的指南。那么,我该怎么做呢?
我有一个具有以下依赖项的电子应用程序:
ffmpeglibmagicgdbm目前,我brew install ffmpeg在应用程序启动时使用 Homebrew 和 run等。
然而,这对于分发来说是可怕的。有没有办法将这些依赖项与我的应用程序打包一起分发,这样最终用户就不必使用 Homebrew 或处理安装错误?我正在分发我的应用程序,electron-packager用于创建桌面 Mac 应用程序。
我给出了特定的依赖项只是为了上下文——希望有一个解决方案可以处理任何通用依赖项?
homebrew software-distribution dependency-management electron-packager
第一次在 macOS (10.14) 上尝试 Nuitka。
我做了python3 -m nuitka --standalone hello.py(也试过--clang)
结果是一个奇怪的hello.dist文件夹——它甚至没有在 Finder 中显示为文件夹——它包含一堆.so文件,Python以及我的可执行文件hello.
我以为它会创建一个.app捆绑包?还有一步吗?
(我也试过https://sveinbjorn.org/platypus但这并不能真正编译 python。)
我现在知道如何使用 APL 解释器,但我对如何将 APL 写入文件然后运行该文件感到非常困惑。我目前使用RIDE编写 Dyalog APL 。我现在想做的是:
大多数在线文档都提到“APL 会话”,这让我觉得可能存在一些类似 Smalltalk 的东西,人们只能分发“实时图像”或类似的东西。如果是这样的话,我有一组不同的问题:
总的来说,我对如何用APL编写软件感到很困惑!
我使用的是 Ubuntu,一般来说我想以 Linux 为目标。Windows/macOS 支持将是一个优势,但我目前对 Linux 支持感兴趣。
executable software-distribution apl dyalog command-line-arguments
python ×3
cython ×2
apl ×1
build.gradle ×1
cythonize ×1
dyalog ×1
electron ×1
executable ×1
gradle ×1
homebrew ×1
installation ×1
java ×1
javascript ×1
launchpad ×1
license-key ×1
matlab ×1
nuitka ×1
pytest ×1
python-2.7 ×1
python-3.x ×1
setup.py ×1
setuptools ×1