为什么我的IDE不能为python-docx自动完成?

时间:2017-03-23 06:03:26

标签: python python-docx

当我使用python-docx时,我的IDE,如pycharm wing,无法自动完成它。 这段代码

from docx import Document

asd = Document()
asd.add_heading("test")
asd.save("cao.docx")

当我输入asd时。 add_heading无法自动完成。

from docx.document import Document  

asd = Document()
asd.save()
this code can Auto-Complete
but atention

TypeError:init()缺少2个必需的位置参数:' element'和'部分'

我很抱歉我的英语不好

2 个答案:

答案 0 :(得分:0)

在后一种情况下,您错误地导入了<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ng-app="Demo"> <head> <title>Angular Demo</title> <meta content="text/html;charset=utf-8" http-equiv="Content-Type"> <meta content="utf-8" http-equiv="encoding"> <script type="text/javascript" src="js/angular.min.js"></script> <script type="text/javascript" src="js/angular-route.min.js"></script> <script type="text/javascript" src="js/script2.js"></script> <link rel="stylesheet" type="text/css" href="css/style.css"> </head> <body > <table style="font-family: Arial"> <tr> <td colspan="2" class="header"> <h1> WebSite Header </h1> </td> </tr> <tr> <td class="leftMenu"> <a href ng-click="redirectToHome()">Home</a> <a href ng-click="redirectToCourse()">Courses</a> <a href ng-click="redirectToStudent()">Students</a> </td> <td class="mainContent"> <ng-view></ng-view> </td> </tr> <tr> <td colspan="2" class="footer"> <b>Website Footer</b> </td> </tr> </table> </body> </html> 而不是 var app = angular.module("Demo", ["ngRoute"]) .config(function ($routeProvider,$locationProvider) { $locationProvider.html5Mode(true); $routeProvider .when("/home", { templateUrl: "Templates/home.html", controller: "homeController" }) .when("/courses", { templateUrl: "Templates/courses.html", controller: "coursesController" }) .when("/students", { templateUrl: "Templates/students.html", controller: "studentsController" }) }) .run(function($rootScope,$location){ $rootScope.redirectToHome=function(){ $location.path('\home'); } $rootScope.redirectToCourse=function(){ $location.path('\courses'); } $rootScope.redirectToStudent=function(){ $location.path('\students'); } }) .controller("homeController", function ($scope) { $scope.message = "Home Page"; }) .controller("coursesController", function ($scope) { $scope.message = "Courses Page"; }) .controller("studentsController", function ($scope) { $scope.message = "Students Page"; }) docx.document.Document中的docx.Document类具有不同的呼叫签名,并且在任何情况下都不是您想要的那个:)

答案 1 :(得分:0)

事实上,docx.Document(...)实际上是一个方法,它返回docx.document.Document类的对象。
(也许他们应该通过遵循命名约定来命名此方法,说诸如docx.create_document(...)之类的内容)

因此,为了获得docx.document.Document类内容的可见性,您必须同时使用以下两种导入方式:

from docx import Document
from docx.document import Document