标签: multiple-versions

支持不同版本的Python

这个问题一直困扰着我.

对于我的Python项目,我希望能够支持Python版本2.4到3.1.我想了一下如何做到这一点,并最终决定为四个不同版本的Python提供四个独立的源代码分析:2.4,2.5,2.6和3.1.

我认为这是一个糟糕的决定,主要是因为Python的分配烦恼,我现在必须做四次而不是一次.

问题是,该怎么办?

我的项目是在科学计算领域.我的印象是仍然有很多人依赖Python 2.4.

有人建议我只写2.4我的整个项目,但这对我来说是不可接受的.这意味着我无法使用上下文管理器,这是我不会放弃的.

普通的Python项目如何支持2.4?他们避免使用上下文管理器吗?

另外,有没有选择,但有一个单独的Python 3.1的分支?我知道在2.x和3.x上运行相同的代码有各种各样的黑客攻击,但我喜欢Python的原因之一是因为代码很漂亮,而且我不会容忍使用兼容性黑客来使它变得难看.

拜托,请给我你的意见.

python compatibility multiple-versions python-3.x

9
推荐指数
1
解决办法
2188
查看次数

封闭源库包括boost分配

我正在使用一个封闭的源库(由Activ financial提供),其中包括一个boost分配,包括一些boost头文件和boost库文件.

我也在现有的代码库中使用Boost,我需要在现有代码中使用Activ.

有些观点

  • 我可以封装我对Activ的使用,以便整个Activ部分相当于我编写的一个类,它不暴露任何Activ的头文件
  • 这个单头文件不使用任何提升任何东西
  • 通过这种方式,我可以确保我的代码的Activ部分使用Activ的Boost HPP文件,我的代码使用我的Boost的HPP文件

我担心链接.如何确保我的Activ依赖代码链接到Activ的Boost,而我的其他代码链接到我的Boost?

我现在正在使用g ++,也将在VS2008中使用它.我之前在VS2008工作过,但我不知道一切都是如何联系起来的.我想尝试确保它正确完成.

有没有办法在没有进一步将Activ部分封装在动态库中的情况下执行此操作?

编辑:

首先,我的最终产品总是一个可执行文件.对于两个人,我静静地联系以提升自己.Activ库包括Boost对象库的静态和动态版本,我打算静态链接它.

我从不在使用不同boost版本的代码之间传递Boost对象.

问题是,如何将一个cpp或.o文件链接到一个库文件中的对象,然后确保其他.o文件链接到另一个库文件中的相同对象?这可能吗?

c++ boost multiple-versions

9
推荐指数
1
解决办法
457
查看次数

处理同一URL中的多个版本

我正在尝试做的是处理同一个Web应用程序的多个版本,有点像谷歌与他们的一些产品,你得到"尝试新版本"链接.

目标是同时拥有webapp的"稳定"版本和"beta"版本,并让用户试用新功能而不必强迫它们(以及它们的错误).

现在,一种非常简单的方法是将每个版本放在自己的子文件夹中,例如www.mywebapp.com/v1和www.mywebapp.com/v2.

但是,我希望这对用户和webapp URL保持透明以保持不变(例如:www.mywebapp.com/).

在用户登录后确定必须加载哪个版本的服务器端(例如:给定用户的活动版本存储在DB中),并且可以在用户点击"尝试新版本"/"go时更改回到旧版本"链接.

在服务器端,我必须使用MySQL,PHP和Apache.

我已经设法让这个工作将每个版本放入它自己的子文件夹,然后将版本信息存储在cookie中(在每次登录或页面刷新时由服务器更新)并使用RewriteRule来"代理"来自base/versionless的请求适当子文件夹的URL.如果未设置cookie,则由后备RewriteRule选择默认文件夹.

这个kludge工作,但感觉非常脆弱,它给Apache守护进程带来了额外的负担所以我在这里问我是否有人知道更好的方法.

谢谢!

php apache ria multiple-versions

8
推荐指数
2
解决办法
579
查看次数

Gradle多个版本的GRADLE

为了清楚起见:这不是关于多个版本的依赖项,而是关于Gradle自己的jar的多个版本.

我认为可能有答案......但没有!

这是Gradle 2.14,带有Windows 10操作系统.

我发现gradle在这个项目的".gradle"目录下不断构建一个新目录:除了合法的"2.14"目录外,它还在构建一个"2.2.1 \"目录.

我查看了我安装Gradle的目录:令人费解的是我发现了Gradle的jar文件的多个版本:不仅2.14,而且2.13,1.7和是,2.2.1 ..

所以我决定手动删除2.2.1.罐子.它停止构建"假的"2.2.1目录.

有人能告诉我Gradle如何决定它使用的是哪个版本?我真的想摆脱那些非2.14的罐子,并找到一种方法来防止其他版本以某种方式爬回来!

java multiple-versions gradle

8
推荐指数
1
解决办法
5206
查看次数

适用于Android和iOS的不同软件包版本

我正在使用React Native为Android和iOS开发应用程序.

我使用的其中一个库有点问题,因为应用程序只能正确编译:

  • ...在Android上使用时"react-native": "0.42.0".
  • ...在iOS上使用时"react-native": "0.37.0".

(图书馆本身,以及特定版本react-native都不适用于此讨论.重要的是,我似乎需要"同时"两个单独的版本- 每个平台都有不同的版本.)

我正在寻找一种方法来拥有一个代码库,可以使用任何平台的相关工具进行编译,无需任何修改1.我想到的解决方案是(以某种方式):

  • 为每个移动操作系统指定不同的包版本.
  • package.json每个平台都有完全不同的文件.

但是,我不知道如何实现上述任何一种方法,或者它们是否可行.我尝试添加.ios在平台特定代码.androidReact-Native文档中进行了解释,但是npm无法识别这些文件.

所以我的问题是:

  1. 我的想法是否可行,如果可行 - 如何?
  2. 有没有其他方法可以获得理想的结果?

1在类似C的代码中,使用预处理器标志会很容易.

dependencies os-dependent multiple-versions npm react-native

8
推荐指数
1
解决办法
693
查看次数

如何在Delphi 6 - 2007中保持表格和框架的可编辑性?

我们最近将长期运行的Delphi项目转换为开源项目.已经有多个人提供了补丁,这很好,但遗憾的是,使用Delphi 2006(及更高版本)保存时,表单和框架在.dfm中包含了旧版本无法处理的新属性.IDE可以非常优雅地处理表单("忽略属性?"),但是帧会在运行时加载并导致错误.就我而言,不是一种选择.

我现在手动从.dmf文件中删除了这些属性,但我真的想知道是否有更优雅的解决方案.没有办法从新的IDE中以向后兼容的格式保存,是吗?是否有现有工具从.dfm中删除不受支持的属性?我缺少任何其他优雅的解决方案?

通常,对于商业项目,我只是将项目升级到适用的最新版本......但由于这是开源的,我真的不想放弃那些仍在使用Delphi 7的开发人员.这包括我自己,实际上.

forms delphi multiple-versions

7
推荐指数
2
解决办法
396
查看次数

使用闭源库分发boost

我有一个需要使用某个闭源C++ API的应用程序.此API与一些Boost,二进制库文件和所有文件一起分发.我喜欢在我自己的代码中使用Boost.我不能只使用他们的Boost版本,因为他们没有分发我需要的Boost的所有部分.我该怎么办?目标平台是linux,最终也是Windows.

  • 我不会跨API边界传递Boost对象.
  • 我可以将事物编译为目标文件,以便我的代码使用我的 boost标头,API的代码使用 Boost标头.这部分看起来很简单.
  • 没有得到:如何 我的代码链接我的 Boost库文件,以及API的代码链接到 Boost库文件.我是否需要围绕API编译自己的包装器 - 一个包头,其头部包括Boost - 到动态库?(这是我能想到的唯一方法来进行链接.API的Boost库文件中的符号应该与我的Boost库文件中的符号相同.我必须分两个阶段进行链接,不是吗?唯一的方法我可以链接一个程序,而不是通过制作动态库,不是吗?)

c++ boost multiple-versions

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

制作同一个应用程序的两个版本 - lite和pro

我们有一个AdWhirl赞助版的应用程序(Moonrise),并希望提供无广告的$ .99版本.

出于维护原因,我想要一个应用程序,我只需更改几个#defines来打开和关闭广告.

但是,如何编译为两个不同的"应用程序包",可以说具有不同的名称和包标识符?

我想我在尝试之前只是要求单挑,如果有问题我应该考虑一下.此外,如果有更简单的方法,我想知道(因为这应该在开发者中很常见).

计划是

  1. 创建一个包标识符,在-info.plist中进行更改
  2. 使用新名称创建新应用程序,更改包显示名称和图标
  3. 制作#define等不显示广告
  4. 上传到App Store

我错过了什么吗?

iphone bundle multiple-versions

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

如何在 Windows 10 上安装不同版本的 MySQL?

我想在 Windows 上安装不同的 MySQL 版本。我有一个 MySQL 5.5 正在运行,我想安装一个 MySQL 5.7 来调试我正在处理的程序的兼容性问题。两个安装都应该放在一边,可能有自己的数据库(可以从空的 5.7 开始),我很高兴从服务控制面板手动运行或停止一个或另一个。现在的MySQL 安装程序 - 社区想要升级我现有的安装,与本文中解释的不同,不提供另一种安装版本的选项。我发现的只是一个咆哮确认我的问题,但没有真正的解决方案。如果它需要我手动安装它,我需要详细的说明。就我而言,默认设置(默认端口)就足够了,因为我不需要同时运行两个实例。

mysql windows-installer multiple-versions

7
推荐指数
2
解决办法
3109
查看次数

CUDA 版本不匹配

我尝试卸载 CUDA 10 并安装 9.2。现在nvcc -V返回 9.2,但显示nvidia-smiCUDA 10.0。

知道为什么会发生这种情况或如何解决吗?在我的系统上找不到与 10.0 相关的任何其他内容。

编辑:添加了截图作为对 nvidia 员工的回复,显示nvidia-smi清楚地说明了 CUDA 版本..

在此处输入图片说明

cuda nvidia multiple-versions nvcc ubuntu-16.04

7
推荐指数
0
解决办法
2964
查看次数