问题PEP8有一条关于将导入放在文件顶部的规则:Importsarealwaysputatthetopofthefile,justafteranymodulecommentsanddocstrings,andbeforemoduleglobalsandconstants.但是,在某些情况下,我可能想做一些类似的事情:importsyssys.path.insert("..",0)importmy_module在这种情况下,pep8命令行实用程序会标记我的代码:E402modulelevelimportnotattopoffile通过sys.path修改实现PEP8合规性的最佳方法是什么
在今天之前,我从未注意到在我的一些包上定义的__path__属性。根据文档:Packagessupportonemorespecialattribute,__path__.Thisisinitializedtobealistcontainingthenameofthedirectoryholdingthepackage’s__init__.pybeforethecodeinthatfileisexecuted.Thisvariablecanbemodified;doingsoaffectsfuturesearchesformodulesandsubpackagescontainedin
我正在检查目录是否存在,但我注意到我使用的是os.path.exists而不是os.path.isdir。两者都工作得很好,但我很好奇使用isdir而不是exists有什么优势。 最佳答案 os.path.exists如果有一个具有该名称的常规文件,也将返回True。os.path.isdir仅当该路径存在并且是目录或指向目录的符号链接(symboliclink)时才会返回True。 关于python-os.path.exists与os.path.isdir之间的优缺点,我们在Stack
我有一个名为example_file.py的文件,我想从其他各种文件中使用它,所以我决定将example_file.py添加到sys.路径并将此文件导入另一个文件以使用该文件。为此,我在IPython中运行了以下命令。importsyssys.pathsys.path.append('/path/to/the/example_file.py')print(sys.path)我可以看到我刚刚添加的路径,当我尝试从另一个目录路径导入这个文件时:importexample_file它工作得很好,但是一旦我从IPython出来,再次进入它,检查sys.path,我发现我添加的路径不存在,那怎么
在多个开源项目中,我见过有人用os.path.abspath(os.path.realpath(__file__))来获取当前文件的绝对路径。但是,我发现os.path.abspath(__file__)和os.path.realpath(__file__)产生相同的结果。os.path.abspath(os.path.realpath(__file__))好像有点多余。人们使用它有什么原因吗? 最佳答案 对于您所述的场景,没有理由将realpath和abspath结合起来,因为os.path.realpath在返回结果之前实际上调
另一位开发人员和我不同意应该使用PYTHONPATH还是sys.path来允许Python在用户(例如开发)目录中查找Python包。我们有一个具有典型目录结构的Python项目:Projectsetup.pypackage__init__.pylib.pyscript.py在script.py中,我们需要importpackage.lib。当软件包安装在site-packages中时,script.py可以找到package.lib。但是,当从用户目录工作时,需要做其他事情。我的解决方案是将我的PYTHONPATH设置为包含"~/Project"。另一个开发者想把这行代码放在scri
我有一个充满脚本的目录(比如说project/bin)。我还有一个位于project/lib的库,并希望脚本自动加载它。这是我通常在每个脚本顶部使用的:#!/usr/bin/pythonfromos.pathimportdirname,realpath,sep,pardirimportsyssys.path.append(dirname(realpath(__file__))+sep+pardir+sep+"lib")#...nowtherealcodeimportmylib这有点麻烦,丑陋,并且必须在每个文件的开头粘贴。有没有更好的方法来做到这一点?我真正希望的是像这样顺利的事情:#
有没有办法使用python以独立于平台的方式修改PATH环境变量?类似于os.path.join()的东西? 最佳答案 你应该可以修改os.environ。由于os.pathsep是分隔不同路径的字符,您应该使用它来附加每个新路径:os.environ["PATH"]+=os.pathsep+path或者,如果有多个路径要添加到列表中:os.environ["PATH"]+=os.pathsep+os.pathsep.join(pathlist)正如您所提到的,os.path.join也可用于您必须附加的每个单独的路径,以防您必须从
Python的sys.path是从哪里初始化的?UPD:Python在引用PYTHONPATH之前添加了一些路径:>>>importsys>>>frompprintimportpprintasp>>>p(sys.path)['','C:\\Python25\\lib\\site-packages\\setuptools-0.6c9-py2.5.egg','C:\\Python25\\lib\\site-packages\\orbited-0.7.8-py2.5.egg','C:\\Python25\\lib\\site-packages\\morbid-0.8.6.1-py2.5.eg
在django在线类(class)中,讲师让我们使用url()函数来调用View并使用urlpatterns列表中的正则表达式。我在youtube上看到了其他例子。例如fromdjango.contribimportadminfromdjango.urlsimportincludefromdjango.conf.urlsimporturlurlpatterns=[path('admin/',admin.site.urls),url(r'^polls/',include('polls.urls')),]#andinpolls/urls.pyurlpatterns=[url(r'^$',v