标签: versions

Python:从多个已安装的模块版本中选择一个

在我的系统上,我有多次安装了几个模块.举个例子,numpy 1.6.1安装在标准路径中/usr/lib/python2.7/dist-packages,我有一个numpy 1.8.0安装的更新版本/local/python/lib/python2.7/site-packages/.

我不能简单地删除旧版本的原因是我没有权限在我的工作计算机上更改任何内容.但是我需要使用新的numpy版本.

我加入/local/python/lib/python2.7/site-packages/了我的PYTHONPATH.不幸的是,这没有用,因为/usr/lib/python2.7/dist-packages首先插入到路径中,因此numpy 1.6.1将被加载.这是一个例子:

>>> import os
>>> print os.environ['PYTHONPATH']
/local/python/lib/python2.7/site-packages
>>> import pprint
>>> import sys
>>> pprint.pprint(sys.path)
['',
 '/local/python/lib/python2.7/site-packages/matplotlib-1.3.1-py2.7-linux-x86_64.egg',
 '/local/python/lib/python2.7/site-packages/pyparsing-2.0.1-py2.7.egg',
 '~/.local/lib/python2.7/site-packages/setuptools-3.4.4-py2.7.egg',
 '~/.local/lib/python2.7/site-packages/mpldatacursor-0.5_dev-py2.7.egg',
 '/usr/lib/python2.7/dist-packages',
 '/local/python/lib/python2.7/site-packages',
 '/usr/lib/python2.7',
 ...,
 '~/.local/lib/python2.7/dist-packages', 
 ...]
Run Code Online (Sandbox Code Playgroud)

所以,似乎导入订单是

  1. 当前目录
  2. 鸡蛋来自 PYTHONPATH
  3. 来自本地模块路径的鸡蛋(~/.local/lib/python2.7/site-packages/*.egg)
  4. 系统范围的模块路径(~/usr/lib/python2.7/dist-packages/)
  5. 来自的目录 PYTHONPATH
  6. 中间路径(为简洁起见省略)
  7. userbase目录(~/.local/lib/python2.7/site-packages/)

我的问题是我需要在项目3和项目4之前放置项目5.以使我的代码正常工作.现在,如果我numpy 1.8.0/local/*目录导入一个编译过的模块,并且这个模块导入numpy,它仍然会从/usr/*目录中取出numpy 并失败.

我通过在我的脚本中放置这样的东西来规避这个问题:

import sys
sys.path.insert(0, '/local/python/lib/python2.7/site-packages/')
Run Code Online (Sandbox Code Playgroud)

因此,我可以强制Python使用正确的导入顺序,但当然这不是一个解决方案,因为我必须在每个脚本中 …

python module versions pythonpath sys.path

26
推荐指数
1
解决办法
2万
查看次数

如何在不加载程序集的情况下获取程序集的版本?

大型程序的一个小功能检查文件夹中的程序集,并用最新版本替换过时的程序集.要实现此目的,它需要读取现有程序集文件的版本号,而不实际将这些程序集加载到执行过程中.

.net assemblies versions

24
推荐指数
3
解决办法
1万
查看次数

解决简单的svn冲突

我在mac上使用svn有点新手.我正在使用版本.

我一直在收到报告说我一直在覆盖其他开发人员的工作,所以我希望有人可以确保我做得很好.

我昨晚做了我的工作,其他团队成员一直在工作,所以今天我做的第一件事是更新我的存储库.

这样做之后我收到了各种文件,我将以css文件为例:

myfile.css.r1593
myfile.css.r1587
myfile.css.mine
myfile.css
Run Code Online (Sandbox Code Playgroud)

我有几个问题.

每个文件代表什么?

我该如何解决冲突?

我最安全的方法是使用svn来避免覆盖其他人的工作,避免在repo之外制作不必要的文件副本?

svn conflict versions

21
推荐指数
1
解决办法
3万
查看次数

Java Classloader - 如何引用jar的不同版本

这是一个常见问题.我正在使用2个库A.jarB.jar,这些库依赖于同一个jar的不同版本.
假设在运行时我需要THIS.xxxjar

MY.jar   
     -> A.jar -> THIS.1.0.0.jar
     -> B.jar -> C.jar -> THIS.5.0.0.jar
Run Code Online (Sandbox Code Playgroud)

我可以针对它的依赖编译特定的jar(A.jar/B.jar)但是在运行时我只能加载1个版本.哪一个?
仅加载1个依赖项(最新版本)意味着如果库不是向后兼容的,那么我的代码可能会抛出运行时异常(那里有向后兼容的库吗?).

无论如何,我知道像OSGi这样的东西可以解决这个问题.
我想知道解决这类问题的旧方法是什么......

非常感谢

java dependencies versions jar classloader

19
推荐指数
1
解决办法
9910
查看次数

使用Eclipse中的Android应用程序切换试用版和专业版:如何减轻它的痛苦?

我有一个Android应用程序,有两种形式:试用版和付费"专业版".这两个版本在Android Market中共存,并且具有不同的包名称(我们称之为com.app.trial和com.app.pro).它们共享相同的代码库.当我必须在Eclispe中的试用版和专业版之间切换时,每次编辑代码时我都要花费不少于20分钟来构建正确的版本.我的程序看起来像这样:

  1. 在AndroidManifest.xml中重命名包名称(也重命名app versionName和versionCode).

  2. 单击主程序包名称"com.app.pro"(如果pro是最新的构建,现在我想进行试验构建)并选择Refactor-> Rename(选中'Update references'和'Rename subpackages')并让Eclipse重命名.

  3. 在此之后出现了困难的部分:在我的代码中,许多文件仍导入"旧"软件包名称"com.app.pro",而不是自动更改为"com.app.trial".在某些情况下,Eclipse在重命名期间添加了这些引用,没有明显的原因(在给定的Java文件中没有对此特定包的引用).我必须手动编辑所有实例.

我的问题是:

如何减少耗时?我也一直在使用NetBeans,它提供了对#ifdefs(aka Abilities)的方便支持,它真正使构建之间的切换变得轻而易举.遗憾的是,#ifdefs不支持Eclipse(至少没有内置支持).

任何建议将不胜感激.

PS作为参考,我使用的是Eclipse Ganymede 3.4.2版,但也尝试了更新的版本,它也是如此.

eclipse android versions conditional-compilation building

14
推荐指数
1
解决办法
2673
查看次数

在版本中创建分支(Mac Subversion客户端)

我到处都搜索,但我找不到有关如何在Versions for Mac中创建分支的信息.这是怎么做到的?

macos versions

14
推荐指数
1
解决办法
6130
查看次数

在开始使用c#4.0之前,是否必须学习所有其他版本的c#?

由于我是刚刚完成工程的初学者,而且我对c,c ++有很好的了解...我还想过研究c#,但我发现c#4.0已经发布了......

  • 我应该关心以前的版本吗?
  • 您为初学者快速学习c#的提示有哪些?
  • 从c,c ++迁移到c#时需要考虑哪些因素?

.net c# versions

13
推荐指数
2
解决办法
1197
查看次数

python 2.7 vs python 3.1

一些python 3的功能和模块已被反向移植到python 2.7 python 3.1和python 2.7之间的显着差异是什么?

python compatibility versions

13
推荐指数
1
解决办法
6725
查看次数

Maven 2 - 测试和编译中的不同依赖版本

我的项目依赖于commons-httpclient [2.0](编译).

我想写一些jbehave测试 - jbehave-core 3.4.5(测试).这两个依赖项都依赖于commons-lang,但是在不同的版本中 - 1.0.1和2.5.

依赖

当我执行mvn包时,我在测试部分得到[BUID FAILURE].在surefire-plugin输出中我的测试用例有一个例外:

java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
Run Code Online (Sandbox Code Playgroud)

当我查看源代码时 - 在commons-lang 1.0.1中 - 实际上,没有StringUtils.substringBeforeLast(...)方法.为什么maven在commons-httpclient(编译)中使用commons-lang而在测试中不使用jbehave-core?

我不能在commons-httpclient中排除这个冲突的依赖,所以它必须保持编译时间.

那么如何解决这个问题呢? - 测试中的commons-lang 2.5版本和编译时的1.0.1版本.

java maven-2 versions maven

12
推荐指数
1
解决办法
7276
查看次数

如何使用boto和python从存储桶中删除s3版本

当我尝试使用以下行删除存储桶时:

conn = boto.connect_s3(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY)

print conn.delete_Bucket('BucketNameHere').message
Run Code Online (Sandbox Code Playgroud)

它告诉我我试图删除的桶不是空的.

水桶没有钥匙.但它确实有版本.

如何删除版本?

我可以看到使用bucket.list_versions()的版本列表

Java在其s3连接上有一个deleteVersion方法.我在这里找到了代码:

http://bytecoded.blogspot.com/2011/01/recursive-delete-utility-for-version.html

他这行删除版本:

s3.deleteVersion(new DeleteVersionRequest(bucketName, keyName, versionId));
Run Code Online (Sandbox Code Playgroud)

在博托有什么可比性的吗?

python versions amazon-s3 boto

11
推荐指数
1
解决办法
4666
查看次数