当前位置:  开发笔记 > 编程语言 > 正文

如何为python3和python2分别设置不同的PYTHONPATH变量

如何解决《如何为python3和python2分别设置不同的PYTHONPATH变量》经验,为你挑选了2个好方法。

我想只为python2添加一个特定的库路径.然而,在添加export PYTHONPATH="/path/to/lib/"到my .bashrc之后,执行python3会收到错误:您的PYTHONPATH指向Python 2.x的site-packages目录但您运行的是Python 3.x!

我认为这是由于python2和python3共享公共PYTHONPATH变量.

那么,我可以PYTHONPATH分别为python2和python3 设置不同的变量.如果没有,我如何将库路径专门添加到特定版本的python?



1> Kenly..:

您可以mymodule.pthlib/site-packages(在Windows上)或lib/pythonX.Y/site-packages(在Unix和Macintosh上)创建配置文件,然后添加一行包含要添加到python路径的目录.

来自docs.python2和docs.python3:

路径配置文件是一个文件,其名称具有该形式name.pth,并存在于上述四个目录之一中; 其内容是要添加的附加项目(每行一个)sys.path.永远不会添加不存在的项目sys.path,也不会检查项目是指目录而不是文件.没有项目被添加到sys.path多次.以#开头的空白行和行将被跳过.以import(后跟空格或制表符)开头的行将被执行.



2> KT...:

PYTHONPATH就包管理而言,这有点像黑客.一个"漂亮"的解决方案是打包你的库并安装它.

这可能听起来比现在更棘手,所以让我告诉你它是如何工作的.

让我们假设你的"包"有一个名为的文件wow.py,你保留它/home/user/mylib/wow.py.

/home/user/mylib/setup.py使用以下内容创建文件:

from setuptools import setup

setup(name="WowPackage",
      packages=["."],
)

就是这样,现在您可以将您的软件包"正确安装"到您选择的Python发行版中,而无需担心PYTHONPATH.就"正确安装"而言,您至少有三个选择:

"真的很合适".将您的代码复制到python site-packages目录:

$ python setup.py install

"发展".只会添加python site-packages的链接/home/user/mylib.这意味着对目录中代码的更改将起作用.

$ python setup.py develop

"用户".如果您不想写入系统目录,可以将程序包("正确"或"处于开发模式")安装到/home/user/.local目录,Python也可以在目录中找到它们.为此,只需添加--user到命令.

$ python setup.py install --user
$ python setup.py develop --user

要删除在开发模式下安装的软件包,请执行

$ python setup.py develop -u

要么

$ python setup.py develop -u --user

要删除"正确"安装的软件包,请执行

 $ pip uninstall WowPackage

如果你的包比单个文件更有趣(例如你有子目录等),只需packagessetup函数的参数中列出那些(你需要递归地列出所有内容,因此你将为更大的库使用辅助函数).一旦掌握了它,请务必阅读更详细的手册.

最后,去把你的包贡献给PyPI - 它就像调用一样简单python setup.py sdist register upload(尽管你需要一个PyPI用户名).

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有