在这篇文章中,我们将为您详细介绍Linux上的PYTHONPATH的内容,并且讨论关于linuxpythonpath的相关问题。此外,我们还会涉及一些关于ImportError:无法导入名称ABCMe
在这篇文章中,我们将为您详细介绍Linux上的PYTHONPATH的内容,并且讨论关于linux pythonpath的相关问题。此外,我们还会涉及一些关于ImportError:无法导入名称ABCMeta – Linux上的PyDev中的Python错误、Jenkins:将我的Python模块放在PYTHONPATH上、linux – 使用bash脚本添加到$PYTHONPATH、Linux上的Python cmd不会自动完成特殊字符或符号的知识,以帮助您更全面地了解这个主题。
本文目录一览:- Linux上的PYTHONPATH(linux pythonpath)
- ImportError:无法导入名称ABCMeta – Linux上的PyDev中的Python错误
- Jenkins:将我的Python模块放在PYTHONPATH上
- linux – 使用bash脚本添加到$PYTHONPATH
- Linux上的Python cmd不会自动完成特殊字符或符号
Linux上的PYTHONPATH(linux pythonpath)
我是新手,已经开始学习Python,但是我有一些我听不懂的问题,
- PYTHONPATH(在Ubuntu上)究竟是什么?是文件夹吗?
- 是Ubuntu上默认提供的Python,还是必须显式安装?
- 所有模块所在的文件夹在哪里(我有很多文件夹称为
python_
)? - 如果我希望在编程时能使用一个新模块(例如pyopengl),应该在哪里介绍下载的文件夹中的所有文件夹?
- 回到PYTHONPATH问题,如何配置PYTHONPATH以便开始在新模块上工作?
答案1
小编典典PYTHONPATH
是环境变量- 是的(请参阅https://unix.stackexchange.com/questions/24802/on-which-unix-distributions-is-python-installed-as-part-of-the-default-install)
/usr/lib/python2.7
在Ubuntu上- 您不应该手动安装软件包。而是使用pip。当软件包不在pip中时,它通常具有setuptools安装脚本,该脚本会将软件包安装到正确的位置(请参见第3点)。
- 如果使用pip或setuptools,则无需
PYTHONPATH
显式设置
如果查看pyopengl的说明,您会发现它们与第4点和第5点一致。
ImportError:无法导入名称ABCMeta – Linux上的PyDev中的Python错误
print 'Hello World'
而错误就在这里
True Traceback (most recent call last): File "/usr/lib/python2.7/site.py",line 62,in <module> import os File "/usr/lib/python2.7/os.py",line 398,in <module> import UserDict File "/usr/lib/python2.7/UserDict.py",line 83,in <module> import _abcoll File "/usr/lib/python2.7/_abcoll.py",line 11,in <module> from abc import ABCMeta,abstractmethod ImportError: cannot import name ABCMeta
我的模块名为sample.py.
请帮我.谢谢
解决方法
Jenkins:将我的Python模块放在PYTHONPATH上
我正在使用Jenkins测试nodepy
我开发的Python模块。但是,出现以下错误:
File "/var/lib/jenkins/jobs/NodePy/workspace/convergence.py",line 6,in workspace.convergence
Failed example:
from nodepy import rk,convergence,ivp
Exception raised:
Traceback (most recent call last):
File "/usr/lib/python2.7/doctest.py",line 1289,in __run
compileflags,1) in test.globs
File "<doctest workspace.convergence[0]>",line 1,in <module>
from nodepy import rk,ivp
ImportError: No module named nodepy
如何在Jenkins中设置PYTHONPATH(以便我的模块可导入)?
我什至不确定应该添加哪个目录。似乎Jenkins将东西放在jenkins / jobs / nodepy / workspace
/中,因此该目录甚至没有正确的名称供python查找。
编辑:
python模块nodepy
是git
我配置了jenkins作业以查看和结帐的存储库。
linux – 使用bash脚本添加到$PYTHONPATH
sudo echo export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module >> ~/.bashrc
我想要添加到我的.bashrc中的是:
PYTHONPATH=$PYTHONPATH:/path/to/new/python/module
但是我只能添加它:
PYTHONPATH=/all/other/python/modules/already/on/path:/path/to/new/python/module
我不希望将实际的$PYTHONPATH值添加到我的.bashrc中,只是变量名.请帮忙!
解决方法
$echo 'export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module' >> .bashrc $cat .bashrc export PYTHONPATH=$PYTHONPATH:/path/to/new/python/module
shell不对单引号字符串执行变量扩展.
另请注意,如果您要写入〜/ .bashrc,则不需要sudo.用户应该拥有自己的〜/ .bashrc.此外,如上所述,sudo命令仅对echo进行操作.重定向>〜/ .bashrc使用用户的权限级别完成.由于echo不需要并且没有从sudo中获益,所以sudo实际上是一种无操作. [帽子提示:tripleee]
Linux上的Python cmd不会自动完成特殊字符或符号
示例代码
import cmd class Test(cmd.Cmd): def do_abc(self,line): print line def complete_abc(self,text,line,begidx,endidx): return [i for i in ['-xxx','-yyy','-zzz'] if i.startswith(text)] try: import readline except ImportError: print "Module readline not available." else: import rlcompleter if 'libedit' in readline.__doc__: readline.parse_and_bind("bind ^I rl_complete") else: readline.parse_and_bind("tab: complete") test().cmdloop()
Mac OS上的预期行为
(Cmd) abc <TAB> abc (Cmd) abc -<TAB> -xxx -yyy -zzz (Cmd) abc -x<TAB> (Cmd) abc -xxx
Linux上的行为不正确
(Cmd) abc <TAB> abc (Cmd) abc -x<TAB> <nothing> (Cmd) abc -<TAB> (Cmd) abc --<TAB> (Cmd) abc ---<TAB> (Cmd) abc ----
我尝试添加 – 到cmd.Cmd.identchars,但它没有帮助.
cmd.Cmd.identchars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMnopQRSTUVWXYZ0123456789_-'
为什么Mac OS和Linux之间的readline解析存在差异,即使它们都使用GNU readline:
苹果系统:
>>> readline.__doc__ 'Importing this module enables command line editing using GNU readline.'
Linux的:
>>> readline.__doc__ 'Importing this module enables command line editing using GNU readline.'
谢谢!
解决方法
解决问题的方法是从readline用作分隔符的字符集中删除.
例如.
old_delims = readline.get_completer_delims() readline.set_completer_delims(old_delims.replace('-',''))
今天关于Linux上的PYTHONPATH和linux pythonpath的介绍到此结束,谢谢您的阅读,有关ImportError:无法导入名称ABCMeta – Linux上的PyDev中的Python错误、Jenkins:将我的Python模块放在PYTHONPATH上、linux – 使用bash脚本添加到$PYTHONPATH、Linux上的Python cmd不会自动完成特殊字符或符号等更多相关知识的信息可以在本站进行查询。
本文标签: